设置cell分割线的方案

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];

}

你可能感兴趣的:(设置cell分割线的方案)