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

Tod*_*ddB 9 uitableview ios ios8

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

我一直在设定cell.clipsToBounds = YES并认为这就是我需要做的一切.

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

iOS7 :(这就是我想要的)

在此输入图像描述

iOS8上:

在此输入图像描述

Vit*_*nko 15

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

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


and*_*ers 5

我尝试了VitaliyToddB 的解决方案,不幸的是,尽管它们在大多数情况下确实有效,但它们对我来说并不总是 100% 一致。

我不想覆盖 layoutSubviews,但到目前为止我没有发现其他解决方案可以 100% 工作:'(

override func layoutSubviews() {
    super.layoutSubviews()
    self.contentView.clipsToBounds = true
}
Run Code Online (Sandbox Code Playgroud)