iOSエンジニアのつぶやき

毎朝8:30に iOS 関連の技術について1つぶやいています。まれに釣りについてつぶやく可能性があります。

【Swift】TableView のセクションごとに Separator を出しわけよう

今回は UITableView で、セクションごとに Separator を出し分ける方法を紹介したいと思います👷‍♀️

結論

Separator を表示したくない Cell の場合、下記のように UITableViewCellseparatorInset プロパティの値をうまく調整することで非表示にすることができます。

cell.separatorInset = .init(top: 0, left: 0, bottom: 0, right: UIScreen.main.bounds.width)

今回の場合は、Cell の幅とスクリーンの幅が同じなので UIScreen.main.bounds.width にしていますが、基本的に Cell の幅と同じにすることで Seprator が表示されないようになります。もちろん cell.separatorInset = .init(top: 0, left: UIScreen.main.bounds.width, bottom: 0, right: 0) でも同じ結果が得られます。

また、UITableViewCell のサブクラスで separator を表示する方法もあるみたいですが、UITableViewCellAPI 変更により予期しない View も非表示にしてしまう可能性があるので個人的にはおすすめしません🤔

    override func layoutSubviews() {
        super.layoutSubviews()
        for separator in subviews where separator != contentView {
            separator.isHidden = true
        }
    }

という感じで本日も以上になります🍺

その他の記事

yamato8010.hatenablog.com

yamato8010.hatenablog.com

yamato8010.hatenablog.com