tabview全屏显示分割线

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

你可能感兴趣的:(tabview全屏显示分割线)