UITableViewCell在iOS8中没有剪辑到编辑模式的边界(适用于iOS7.1)

时间:2014-12-11 20:47:00

标签: ios uitableview ios8

我正在设置UITableViewCell的高度,以便它将剪辑,而不是该行的所有内容都可见。这在iOS7中都可以正常工作,而不是编辑"模式和"编辑"模式。在iOS8中,它仅适用于"而不是编辑"模式。在点击左侧的红色删除按钮后,编辑单元格的整个内容时会显示,以便您看到右侧的删除按钮。

我一直在设置cell.clipsToBounds = YES并认为这就是我需要做的全部。

编辑:我也试过cell.contentView.clipsToBounds = YES,但这没有用。

iOS7 :(这就是我想要的)

enter image description here

iOS8上:

enter image description here

2 个答案:

答案 0 :(得分:15)

看起来iOS 8中的UITableView在开始编辑时将cell.contentView.clipToBounds设置为NO。此代码可帮助我解决您的问题:

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.contentView.clipsToBounds = YES;
}

答案 1 :(得分:4)

我尝试了 Vitaliy ToddB的解决方案,不幸的是,尽管他们大部分时间都在工作,但他们并不总是100%一致。

我讨厌必须覆盖layoutSubviews,但我找不到其他解决方案到目前为止100%的时间都有效:'(

override func layoutSubviews() {
    super.layoutSubviews()
    self.contentView.clipsToBounds = true
}