【Swift/Xcode】UITableViewの実装方法・コンプリートガイド

知っておきたいUITableViewのプロパティ

TableViewの背景に画像にする

①まずはTableViewに画像を配置する

ViewDidLoadに以下のコードを追記

let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: tableView.frame.height))
imageView.image = UIImage(named: "imageFileName")
tableView.backgroundView = imageView

②TableViewCellの背景を透過する

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cellId", for: indexPath)
    cell.backgroundColor = UIColor.clear
    return cell
}

スワイプした時のdeleteボタンの名前を変更する

func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? {
    return "削除"
}

セクションの高さを変更する

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 40
}

選択した後にセルがグレーになる現象を無効にする

セル選択時のブロックに以下のコードを追記する

tableView.deselectRow(at: indexPath, animated: true)

セクションの文字色と背景色を変更する

func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    // セクションの背景色を変更
    view.tintColor = .red
    
    // セクションの文字色を変更
    let header = view as! UITableViewHeaderFooterView
    header.textLabel?.textColor = UIColor(hex: "606060")
}

該当のセクションとセルに自動スクロールさせる

以下の関数を追記し、自動スクロールさせたいタイミングで以下の関数を呼ぶ

func tableViewScroll(row: Int, section: Int) {
    self.tableView.reloadData()
    DispatchQueue.main.async {
        let indexPath = IndexPath(row: row, section: section)
        self.tableView.scrollToRow(at: indexPath, at: .top, animated: true)
    }
}

呼び方

tableViewScroll(row: 0, section: 0)

連絡先アプリの右側のバーみたいなUIの実装方法

func sectionIndexTitles(for tableView: UITableView) -> [String]? {
    return sectionNameArray
}
【Xcode/Swift】連絡先アプリの右側のバーみたいなUIの実装方法