iOS 8中TableViewCell的分隔线位置发生了变化

3
我正在通过编程创建表格视图和单元格。在iOS 8中,表格视图单元格的分隔线位置发生了变化,即使我已经设置了以下属性:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return kSomeNumber;
}

我的应用是ios7,而我的手机是ios8。可能会有什么问题? 我无法使用只针对ios8的cell.layoutMargins。


你能解释一下“分隔符移动”是什么意思吗? - Mick MacCallum
嗨,单元格高度相同,但分隔线向上移动了。 - Ted
1个回答

5

iOS8以后,我们有了layoutMargins,这会导致你出现了问题。

如果你有一个自定义的单元格,请添加以下方法来移除它:

- (UIEdgeInsets)layoutMargins 
{
     return UIEdgeInsetsZero;
}

或者在您的UITableViewController中添加以下内容:
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{

   if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
        [cell setLayoutMargins:UIEdgeInsetsZero];
   }
}

为支持iOS7,需要使用responsToSelector。

有关更多信息,请查看iOS 8 UITableView分隔符缩进0无法正常工作


谢谢!在我的自定义UITableViewCell类中实现“-layoutMargins”就解决了问题(并且在iOS 7上运行良好)。 - race_carr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接