我正在设置UITableViewCell的高度,以便它将剪辑,而不是该行的所有内容都可见。这在iOS7中都可以正常工作,而不是编辑"模式和"编辑"模式。在iOS8中,它仅适用于"而不是编辑"模式。在点击左侧的红色删除按钮后,编辑单元格的整个内容时会显示,以便您看到右侧的删除按钮。
我一直在设置cell.clipsToBounds = YES
并认为这就是我需要做的全部。
编辑:我也试过cell.contentView.clipsToBounds = YES
,但这没有用。
iOS7 :(这就是我想要的)
iOS8上:
答案 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
}