第一種方法 : 自定義分割線
自定義分割線 ——>UIView.height ==1
第二種方法 : 利用系統(tǒng), 不推薦使用, ios8才支持
清空tableview分割線的約束邊緣,再清空cell的約束邊緣
self.tableView.layoutMargins = UIEdgeInsetsZero;
cell.layoutMargins = UIEdgeInsetsZero;
第三種方法 : 萬能公式(重寫cell的SetFrame),了解tableView的底層實現(xiàn)
實現(xiàn)步驟 :
- 取消系統(tǒng)自帶分割線
- 把tableView背景色設置為分割線的顏色
- 在cell中重寫SetFrame方法
實現(xiàn)代碼 :
/**
* 重寫setframe方法,設置分割線
*/
-(void)setFrame:(CGRect)frame
{
frame.size.height -= 1;
[super setFrame:frame];
}
tableView的底層實現(xiàn)
問題:tableView上cell的位置都是由系統(tǒng)自己算,那他什么時候算呢?
首先:系統(tǒng)會把所有cell的位置全部計算好,保存
其次:當cell要顯示的時候,就會拿到cell去設置frame