しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

UITableViewCellの線を左端まで最低限の設定で引く - iOS9対応

UITableViewCellの線を左端まで引く方法を調査したのでメモ。
線を画面いっぱいで引くには2箇所設定する必要があります。
今回はXcode7で試しました。

デフォルトでは下のように左端に隙間が空いています。

f:id:llcc:20150908234752p:plain

UITableViewのseparatorInset

1つ目の設定はUITableViewのseparatorInsetです。
これの左側を0pxにする必要があります。

Storyboardからの設定はTableViewのSeparator Insetで行います。
これをDefaultからCustomにしてLeftに0を入れれば完了です。

f:id:llcc:20150908234758p:plain

コードから設定する事もできます。

UITableView.appearance().separatorInset = UIEdgeInsetsZero

これを設定すればCellがない所の線は左端まで引かれます。

f:id:llcc:20150908235054p:plain

UITableViewCellのlayoutMargins

TableViewのcellForRowAtIndexPath中でUITableViewCellのlayoutMarginsUIEdgeInsetsZeroをセットします。
これで全画面に線が引かれます。

let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
cell.layoutMargins = UIEdgeInsetsZero

f:id:llcc:20150908235735p:plain

Xcode6の話

Xcode6では上に加えてUITableViewlayoutMarginsUIEdgeInsetsZeroする必要がありました。

iOS7対応

layoutMarginsはiOS8から使えるプロパティーなので、iOS7も対応する場合はlayoutMarginsを呼ばないようにする必要があります。