设置tableView的分割线顶两端

在最近的项目中设计图如下
示例图.png

分割线顶在 两端,于是搜集了相关的实现方法

在控制器空加入如下代码,

1
2
3
4
5
6
7
8
9
10
11
12
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 0, 0, 0)];
}
}

并且cell的相关设置方法- (UITableViewCell )tableView:(UITableView )tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 中调用下列方法

1
2
3
4
5
6
7
8
9
10
11
12
- (void)setSeparatorInsetForCell:(UITableViewCell*)cell {
[cell setSelectionStyle:UITableViewCellSelectionStyleNone];
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsMake(0, 0, 0, 0)];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsMake(0, 0, 0, 0)];
}
}

这是比较小众的方法来实现 特定的需求。