tableView的分割线长短控制

开发中,我们经常需要定制tableView,其中tableView中cell的分割线,系统默认的是分割线与左侧没有顶满,右侧顶满了,这样不符合定制的要求;

UITableViewDelegate
/** 设置tableview的分割线的显示*/
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsMake(0, 15, 0, 15)];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsMake(0, 15, 0, 15)];
}
}

可能有一个疑问,为甚么设置一个分割线的长度,需要这两个方法,这两个方法不是都是设置长度吗?一个不行吗?这个问题,我们可以从Apple的源码中找到答案,我们按住option键,鼠标点击方法名称,就可以跳转到apple源码声明中。


layoutMargins
separatorInset

我们可以看到NS_AVAILABLE_IOS(8_0)和NS_AVAILABLE_IOS(7_0)
/** NS_AVAILABLE_IOS(8_0),这个方法可以在iOS8.0及以后的版本中使用,如果在比8.0更老的版本中调用这个方法,就会引起崩溃。*/

所以,个人理解是同时使用两个方法是为了适配不同的系统。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容