ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法相关的知识,希望对你有一定的参考价值。
在ios7中,UITableViewCell左侧会有默认15像素的空白。这时候,设置setSeparatorInset:UIEdgeInsetsZero 能将空白去掉。
但是在ios8中,设置setSeparatorInset:UIEdgeInsetsZero 已经不起作用了。下面是解决办法
首先在viewDidLoad方法加入以下代码:
if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
}
if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
然后在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];
}
}
这样,空白就没有了
以上是关于ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 在 iOS8 中为某些单元格显示错误位置的分隔符
iOS8+ UITableView自动计算cell高度并缓存
包含 UITableView 的 UITableViewCell 的高度(iOS8 和 AutoLayout)
UITableView 滑动删除在 iOS8 上无法正常工作