UITableViewの忘れがちな設定
この記事は、TECOTEC Advent Calendar 2018 の9日目の記事です。
あらすじ
iOSエンジニアを始めて2年と少し、一番触る機会の多いUITableViewの作るたびに「あれどうやるんだっけ?」とか「これどうしたらいいんだっけ?」とか毎回思うことが多いので備忘録がてら忘れがちな設定をまとめてみました。
開発環境:Xcode:10.1
開発言語:swift4.2
UITableViewの上の隙間を消したい
StoryboardにてUITableViewを置いているViewControllerを選択し、
画像1のAdjustScrollViewInsetのチェックを外す
セルの下線(セパレータ)を消したい
・Storyboardで設定する場合
UITableViewを選択し、画像2のSeparatorの値をNoneに設定する。
・ソースコードで設定する場合
tableViewにseparatorStyle = .noneを設定してあげる
@IBOutlet weak var mTableVIew: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
mTableVIew.separatorStyle = .none
}
セルの下線(セパレータ)の左端の隙間をなくしたい
デフォルトの設定のまま実行すると微妙な隙間が左側にできてしまうのでそれをなくす。
・Storyboardで設定する場合
UITableViewを選択し、画像3のSeparatorInsetをCustomに設定してLeftの値を0にする。
・ソースコードで設定する場合
tableVIewにseparatorInset = .zeroを設定してあげる
@IBOutlet weak var mTableVIew: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
mTableVIew.separatorInset = .zero
}
その他の忘れがちな処理
・ カスタムセルを使用した時のセルの初期化
リサイクルされることを忘れてついやりがちな初期化忘れミス。下までスクロールして戻ってきた時に、あるセルで変更した背景色や、hiddenにしていたViewなどが表示される。一瞬「なんで!?」ってなるけれど、落ち着くと「あぁ初期化忘れか...」ってなるので気を付けたい。
・ カスタムセルの高さを表示中に変更する時
アニメーションが入るので要注意。
self.tableView.beginUpdates()
// 動的に動かしたい処理
self.tableView.endUpdates()