1. 系统属性
如果是支持8.0以上,不支持7.0的话,就可以利用系统属性来设置,因为属性是新增的
控制器类中:viewDidLoad方法中,清空tableView分割线内边距
self.tableView.separatorInset = UIEdgeInsetsZero;
清空cell的约束边缘
在自定义cell类的awakeFromNib中
self.layoutMargin = UIEdgeInsetsZero;
两行代码搞定
2.万能方式
底层实现原理:
系统先调用heightForRow获取到高度,内部计算好每个cell的frame,保存到数组中,注意算好后不是马上就给cell的frame赋值,而是在cell要显示的时候,才会设置cell的frame,从以前保存的数组中取出来,一对一,而计算是系统做的,我们无法参与,只能在算好以后,赋值之前给高度做修改
总结:先算好,后赋值,赋值之前去修改
三大步:
清除tableView自带分割线
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
把tableView的背景色设置为分割线颜色
self.tableView.backgroundColor = [UIColor colorWithRed:220 / 255.0 green:220/ 255.0 blue:221 / 255.0 alpha:1];
重写setFrame方法,frame高度减一,调用super方法
-(void)setFrame:(CGRect)frame
{
frame.size.height -= 1;
[super setFrame:frame];
}