iOS 【UIKit-实现tableViewCell间的全屏分割线】

来源:互联网 发布:淘宝助手怎么复制宝贝 编辑:程序博客网 时间:2024/05/22 03:19

实现方案一:

弄一个高度为1的view,放在cell的最下面,这种方式其实是欺骗用户的。很简单高效。

一般此时我们取消tableView自带的分割线:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

实现方案二:

利用系统属性:(对tableView和cell都要设置)

// 设置分割线颜色self.tableView.separatorColor = [UIColor redColor]; // 对tableView进行设置(一般在controller的viewDidLoad中设置)  // 取消约束边缘(iOS 8.0之后才有,需要版本适配)if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {     self.tableView.layoutMargins = UIEdgeInsetsZero;}// 取消分割线内边距self.tableView.separatorInset = UIEdgeInsetsZero;// 对cell进行设置(可以在cellForRowAtIndexPath:代理方法中设置,也可以在cell内部初始化方法中进行设置)cell.separatorInset = UIEdgeInsetsZero;cell.layoutMargins = UIEdgeInsetsZero;


实现效果:

实现方案三:

重写cell的setFrame:方法

- (void)setFrame:(CGRect)frame {    //    frame.origin.x += 10;//    frame.origin.y += 10;//    frame.size.width -= 20;    frame.size.height -= 10;        [super setFrame:frame];}

取消系统自带的分割线

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;


需要注意的是,此处虽然能拦截到cell的frame,但是我们修改哪个属性值,就要在相应的地方做出调整。

比如说修改了cell的高度,那么我们在视图模型中范围cell高度的时候就要加10,这样就会空出来10的空白。

再比如说修改了cell的x、y、width,那么会对cell的内部控件造成影响,需要看具体情况再做调整。

1 0