第一种方法 : 自定义分割线
自定义分割线 ——>UIView.height ==1
第二种方法 : 利用系统, 不推荐使用, ios8才支持
清空tableview分割线的约束边缘,再清空cell的约束边缘
self.tableView.layoutMargins = UIEdgeInsetsZero;
cell.layoutMargins = UIEdgeInsetsZero;
第三种方法 : 万能公式(重写cell的SetFrame),了解tableView的底层实现
实现步骤 :
- 取消系统自带分割线
- 把tableView背景色设置为分割线的颜色
- 在cell中重写SetFrame方法
实现代码 :
/**
* 重写setframe方法,设置分割线
*/
-(void)setFrame:(CGRect)frame
{
frame.size.height -= 1;
[super setFrame:frame];
}
tableView的底层实现
问题:tableView上cell的位置都是由系统自己算,那他什么时候算呢?
首先:系统会把所有cell的位置全部计算好,保存
其次:当cell要显示的时候,就会拿到cell去设置frame