TableView測試的零散筆記

UITableView/Cell/Header

前言

延續前一篇文章,這一篇也來記錄一下關於UITableView的幾個練習項目,關於細節內容,請直接參考程式碼。

練習項目

由於對應到各自字的ViewController內,因此就採用VC來做簡單的分類,當然有些重複練習的功能項目,就不會重複列出。

而這一篇的初始畫面比較簡單,直接使用StackView內,包含各個連結的按鈕,並使用segue來做轉場

Index

Lyrics

  • AVSpeechSynthesizer() 練習如何點選Cell後,說出對應的文字

Lover
List/Edit/Add

List / Edit / Add
  • 設定所有cell的高度
  • IBSegueAction
  • unwindToLoverTableView (分為新增/修改)
  • viewWithTag()
  • convert(:to:)課堂中的幾個相關練習,Cell, Model建立,轉場以及傳值
  • TableView直接拉入View,當作Header (Edit頁面)
  • 自訂HeaderView,繼承自『UITableViewHeaderFooterView』(Add頁面)
  • TableView內註冊自訂HeaderView
  • tableView的deleteRow

AutoLayoutCell

  • 念奴嬌,練習讓Cell自動計算高度 (ref1)
  • 由subview的constraint決定superview的大小

TableViewDiffableDataSource

  • iOS 13利用diffable data source顯示表格內容 (ref2)

Static Cells Height

  • 如何讓 Static Cells 自動計算高度 (ref3)

ReOrder

  • Making table cells reorderable (ref4)

其他練習

Storyboard分拆

  • 選擇要拆分的VC => Editor => Refactor to Storyboard =>
    Enter new SB name

extension練習

  • 加入String+isBlank.swift
  • 命名風格為『型別 + 方法』
  • 判斷空白的好方法 (ref5)

使用方式範例:

private func getErrors() -> [String] {  var result: [String] = []  if nameTextField.text?.isBlank == true {    result.append("名字")  }  if introTextField.text?.isBlank == true {    result.append("簡介")  }  return result}

總結

本文中所做的內容,大部分都是看教材一邊練習的簡單功能,以及補充教材的練習項目。也加上了一些自己想練習的項目,細節請參考Github程式碼。

Reference

  1. 從 auto layout 算出 cell 高度的 Interface Builder — Xcode 11 新功能

2. 利用 diffable data source 顯示表格內容

3. 如何讓 Static Cells 自動計算高度

4. Making table cells reorderable

5. Swift5中如何判断一个字符串是否为空字符串(包含多个空格的情况)

6. Adding Headers and Footers to Table Sections

GitHub

--

--