8
1

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 5 years have passed since last update.

テコテックAdvent Calendar 2018

Day 9

Swift UITableView忘れがちな設定

Last updated at Posted at 2018-12-09

UITableViewの忘れがちな設定

この記事は、TECOTEC Advent Calendar 2018 の9日目の記事です。

あらすじ

iOSエンジニアを始めて2年と少し、一番触る機会の多いUITableViewの作るたびに「あれどうやるんだっけ?」とか「これどうしたらいいんだっけ?」とか毎回思うことが多いので備忘録がてら忘れがちな設定をまとめてみました。

開発環境:Xcode:10.1
開発言語:swift4.2

UITableViewの上の隙間を消したい

StoryboardにてUITableViewを置いているViewControllerを選択し、
画像1のAdjustScrollViewInsetのチェックを外す

■画像1
setting.png

セルの下線(セパレータ)を消したい

・Storyboardで設定する場合
UITableViewを選択し、画像2のSeparatorの値をNoneに設定する。

■画像2
スクリーンショット 2018-12-09 16.57.34.png

・ソースコードで設定する場合
tableViewにseparatorStyle = .noneを設定してあげる

sample.swift
    @IBOutlet weak var mTableVIew: UITableView!
  
    override func viewDidLoad() {
        super.viewDidLoad()
        mTableVIew.separatorStyle = .none
    }    

セルの下線(セパレータ)の左端の隙間をなくしたい

デフォルトの設定のまま実行すると微妙な隙間が左側にできてしまうのでそれをなくす。

・Storyboardで設定する場合
UITableViewを選択し、画像3のSeparatorInsetをCustomに設定してLeftの値を0にする。

■画像3
スクリーンショット 2018-12-09 17.15.19.png

・ソースコードで設定する場合
tableVIewにseparatorInset = .zeroを設定してあげる

sample.swift
    @IBOutlet weak var mTableVIew: UITableView!
  
    override func viewDidLoad() {
        super.viewDidLoad()
        mTableVIew.separatorInset = .zero
    }    

その他の忘れがちな処理

・ カスタムセルを使用した時のセルの初期化
 リサイクルされることを忘れてついやりがちな初期化忘れミス。下までスクロールして戻ってきた時に、あるセルで変更した背景色や、hiddenにしていたViewなどが表示される。一瞬「なんで!?」ってなるけれど、落ち着くと「あぁ初期化忘れか...」ってなるので気を付けたい。

・ カスタムセルの高さを表示中に変更する時
 アニメーションが入るので要注意。

sample.swift
    self.tableView.beginUpdates()
    // 動的に動かしたい処理
    self.tableView.endUpdates()    
8
1
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
8
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?