iOS8 から separatorInset だけだと区切り線が広がらない
こんにちは。iOS8 から SeparatorInsets をゼロにする方法が変わりました。今までの UITableView
の separatorInset
に UIEdgeInsetsZero
を入れるだけだと、iOS7 では効きますが、iOS8 では効かなくなりました。
1
|
tableView.separatorInset = UIEdgeInsetsZero
|
iOS8 にも対応するには
iOS8 からは UIView
に追加された layoutMargins
というプロパティにも UIEdgeInsetsZero
をセットする必要があります。ただこのプロパティ、iOS8 以降でしか利用できないプロパティなので、分岐が必要になります。。
1
2
|
tableView.layoutMargins = UIEdgeInsetsZero
cell.layoutMargins = UIEdgeInsetsZero
|
全体に適用する簡単な例
全体に適用するには UIAppearance を使うと便利です。iOS7 と iOS8 に対応したコードは次のように書けます。
1
2
3
4
5
6
7
8
|
let version = NSString(string: UIDevice.currentDevice().systemVersion).doubleValue
UITableView.appearance().separatorInset = UIEdgeInsetsZero
UITableViewCell.appearance().separatorInset = UIEdgeInsetsZero
if version >= 8 {
UITableView.appearance().layoutMargins = UIEdgeInsetsZero
UITableViewCell.appearance().layoutMargins = UIEdgeInsetsZero
}
|