tabview全屏顯示分割線

weixin_33861800發表於2017-01-07

問題:iOS7以後tabview的cell分割線會預設設定Inset 將分割線左移,iOS8以後會在iOS7的基礎上對cell進行了約束
解決方法:
1、 通過程式碼設定系統屬性,需要做iOS7、8的適配,不然會出現問題;
2、自定義分割線;
自定義分割線方法實現的原理:

  • cell的frame在顯示cell之前都已經計算好了
  • 將cell的高度減1露出tabview的背景色

自定義分割線方法步驟:
1、取消tabview系統自帶的分割線;
在UITableViewController方法中新增以下程式碼:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

2、設定tabview的背景色為分割線顏色;
在UITableViewController方法中新增以下程式碼:
分割線的顏色可以用macOS自帶的取色器讀取

self.tableView.backgroundColor = [UIColor colorWithRed:188 / 255.0 green:197 / 255.0 blue:193 / 255.0 alpha:1];

3、在cell方法中重寫setFrame方法;
在自定義的cell中重寫setFrame方法

- (void)setFrame:(CGRect)frame{
    frame.size.height -= 1;
    [super setFrame:frame];
}

相關文章