问题: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];
}