CS193p Spring 2020 Lecture 1 笔记

1,086 阅读1分钟

本次课程是基于Swift和SwiftUI的。适用于iOS(iPhone、iPad还有Watch/TV)

你能学到的东西包括:

  1. Swift语言
  2. 函数编程
  3. 设计范例(MVVM)
  4. 面向对象数据库
  5. CHI、API设计、语言设计、动画、数据保存、网络、多线程等等

这门课如何运作?

  1. 大部分时间在讲Demos
  2. 也有讲PPT,为了讲清概念是必不可少的。
  3. 有阅读任务(去学swift的官方文档,前三周完成)
  4. 制作app任务(大概4到5个,前六周完成)
  5. 最终的大作业(最后三周)

这是我们将要制作的第一个app,大概就是配对消消乐。

Memories

剩下的是编写ContentView.swift里面的内容。代码如下

import SwiftUI

struct ContentView: View { //可以理解为ContentView表现得像View。这里还是函数编程,而不是面向对象编程。
    var body: some View {
        HStack { // 并列显示下面的内容,下面的内容其实是HStack的参数来的。
            ForEach(0..<4) { index in // 在一个屏幕了生成四个view
                CardView(isFaceUp: false) 
            }
        }
            .padding() // 设置边框距离参数
            .foregroundColor(Color.orange) // 设置前置边框的颜色
            .font(Font.largeTitle) // 设置文本的大小
    }
}

struct CardView: View { // 卡片
    var isFaceUp: Bool
    var body: some View {
        ZStack { // ZStack的作用还不是很懂
            if isFaceUp {
                RoundedRectangle(cornerRadius: 10.0).fill(Color.white)
                RoundedRectangle(cornerRadius: 10.0).stroke(lineWidth: 3)
                Text("👻")
            } else {
                RoundedRectangle(cornerRadius: 10.0).fill()
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider { // 这个是将ContenView()放到了预览上,所以不用管它
    static var previews: some View {
        ContentView()
    }
}