JalanJiang / FoodTracker

Start Developing iOS Apps(Swift)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Start Developing iOS Apps(Swift)

iOS 官方教程:Start Developing iOS Apps (Swift)

知识点

Getting Started

  • 认识 Xcode

Building the UI

  • 构建 UI
    • StoryBoard
    • Auto Layout
  • UI 与代码关联
  • ViewController
    • 调用 UIViewController 方法的流程:
      1. viewDidLoad()
      2. viewWillAppear()
      3. viewDidAppear()
      4. viewWillDisappear()
      5. viewDidDisappear()
    • 添加图像
    • 添加手势识别
    • 属性列表 info.plist
      • 提供照片库使用说明
  • 实现自定义控件
    • 创建自定义视图
      • 初始化视图:以编程方式 & 以 storyboard 方式
      • 显示视图:配置 Identity inspector -> Class
      • 向视图添加按钮:创建按钮、修改按钮属性、为按钮添加 Action、添加按钮到视图
    • 添加对 Interface Builder 的支持
    • 在 Button 上添加星星按钮
    • 实现 Button Action
      • 变更按钮的状态
    • 添加辅助功能信息(无障碍使用):带你认识——iOS Accessibility
    • rating 连接到视图控制器 vieController.swift 中
    • 整理界面:删除设置默认文本按钮、Stack 元素居中处理
  • 定义数据模型
    • 创建数据模型
    • 测试数据

Working with Table Views

  • 创建 Table View
    • Table View Controller 拖入 StoryBoard
    • 设计表格 Cell
    • Cell 与 代码关联
    • 加载初始数据
      • 创建 MealTableViewController.swift
    • 显示数据
      • func numberOfSections(in tableView: UITableView) -> Int
      • func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
      • func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
  • 实现导航
    • 添加 Segue - Editor > Embed In > Navigation Controller
    • 配置导航
      • Bar Button Item object - 通过拖拽可完成场景切换
      • 修改 Segue:修改动画 & 填写 Identifier
      • 添加 Cancel / Save / Add Button
    • [x] 在 MealList 中保存 Meal
      • MealViewController 中:save 按钮与代码关联;配置 prepare(for:sender:) 函数;save 按钮在 StoryBoard 中拖入 exit;
      • MealTableViewController 中定义 unwindToMealList(sender: UIStoryboardSegue)
    • 未输入名称时禁用保存
      • 编辑前:textFieldDidBeginEditing(_ textField: UITextField)
      • 编辑后:textFieldDidEndEditing(_ textField: UITextField)
      • 定义一个函数用于判断是否禁用 button
    • Cancel 取消编辑
      • dismiss(animated:completion:) 方法
  • [ ]实现编辑和删除功能
    • 对现有菜单进行编辑
      • MealTableView override func prepare(for segue: UIStoryboardSegue, sender: Any?),识别 Segue,对目标页面的 Meal 进行赋值
      • MealView 中 override func viewDidLoad() 使用触发器更新 Meal 数据
      • 修改 MealTableView 中的 func unwindToMealList(sender: UIStoryboardSegue)(Save 按钮的操作),对编辑和新增 Meal 加以区分
    • 取消编辑
    • 删除菜单
      • viewDidLoad() 中添加 Edit 按钮 navigationItem.leftBarButtonItem = editButtonItem
      • 修改几个 tableView:
        • tableView(_:commit:forRowAt:)
        • 添加 tableView(_:canEditRowAt:) 方法

Persist Data

NSObjectNSCoding

  • 保存并加载 Meal
    • 修改 Meal.swift 中的初始化方法并添加文件存储路径
  • 保存并加载 MealList

一些零散的语法

踩坑

About

Start Developing iOS Apps(Swift)


Languages

Language:Swift 100.0%