0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

tableView使う際の備忘録

Last updated at Posted at 2022-11-17

目次

1.cell内にUIボタンを置く際の注意

1.cell内にUIボタンを置く際の注意

cellの中にボタン(UISwitchやUISegmentedControl)を配置する際はtableの更新時に注意が必要。

下記のようにdata配列の値が更新された際にtableViewが更新される場合について考える。

var data = [
    ["name", "イベント名"],
    ["location", "緯度経度"],
    ["run", "1"]
]{
    didSet{
        detailTable.reloadData()
    }
} 

//ここでボタンからrunの値を操作する。
@IBAction func runChanged(_ sender: UISegmentedControl) {
    if (sender.titleForSegment(at: sender.selectedSegmentIndex) == "run"){
        print("run")
        data[2][1] = "1"
    }else{
        print("off")
        data[2][1] = "0"
    }
} 

下記のコードは先程のコードでtableViewが更新された際に実行される部分。
data(run)の値を取得し、それに合わせたボタンを選択した状態で再描画する。
この作業をしないとデータの中身と対応していない状態のボタンが描画されてしまう。

if(data[2][1] == "0"){
    runSwitch.selectedSegmentIndex = 1
}else{
    runSwitch.selectedSegmentIndex = 0
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?