在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉。
但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了。
可以用以下方法去除左边的默认缩进:
1.首先在viewDidLoad方法加入以下代码:
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}2.然后在UITableView的代理方法中加入以下代码
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}当然,这样做看起来比较麻烦,也会让代码变得不那么简洁,所以建议干脆就把分割线直接隐藏,然后自定义cell的时候自己加上上下边线,这样自由度比较高,想怎修改就完全看自己的喜好了。
本文介绍如何解决iOS7及iOS8中UITableViewCell左侧默认空白的问题,通过调整separatorInset和layoutMargins属性来移除空白区域,适用于希望自定义单元格布局的开发者。

858

被折叠的 条评论
为什么被折叠?



