UITableView分割线顶头

当UITableView的style设置为UITableViewStylePlain时,最后一个Cell的分割线没有顶头。作为一个处女座,强迫症又犯了,Stack overflowe上找到了解决方法,拿出小本本记一下。

方法一:将TableView的类型设置为UITableViewStyleGrouped

这样每个分区的第一行和最后一行分割线是顶头的


UITableViewStyleGrouped

方法二:在代理方法中修改分割线的约束

代码如下

-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == ([tableView numberOfRowsInSection:indexPath.section] -  1)) {
    // Remove seperator inset
    if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
          [cell setSeparatorInset:UIEdgeInsetsZero];
        }
     // Prevent the cell from inheriting the Table Views margin settings
    if ([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]) {
          [cell setPreservesSuperviewLayoutMargins:NO];
    }
    // Explictly set your cell's layout margins
    if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
          [cell setLayoutMargins:UIEdgeInsetsZero];
        }
    }
}

这里我只添加了最后一个cell的分割线

方法三:设置cell的separatorInset属性

通过设置cell.separatorInset = UIEdgeInsetsMake(0, 0, 0, 0);可以将分割线顶头。但是当设置left为正数时,整个contentView内控件都会发生偏移,个人认为可以只用作设置分割线顶头来用。

后记

只是为了做一个记录,又不正确的地方,希望有人能够指出。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容