如何阻止UITableView剪辑iOS 7中的UITableViewCell内容

时间:2013-09-18 16:47:38

标签: ios ios7

当我将我的应用程序从iOS6更新到iOS7时,我注意到当在单元格视图或contentView上将clipsToBounds属性设置为NO时,iOS6单元格内容允许跨越单元格,iOS7似乎禁用了此功能即使整体视图,tableview,cell和cellcontent clipsToBounds都设置为NO。您可以在附带的图像中看到此示例。第一个是在iOS6上运行的测试代码,第二个是在iOS7上运行的相同代码:

A sample of this running on iOS6 Identical code running on iOS7 有谁知道如何解决这个问题?我猜这只是一个单行修复,但我花了几个小时没有运气。为了避免重大的重写和头痛我,但是玩视图,tableview,cell和cellcontent clipsToBounds没有结果 - 所有在iOS7上都设置为NO,所以我不确定发生了什么不同。

您可以在以下位置查看和下载示例项目:https://github.com/Jon-Schneider/ClipsToBoundsTest

谢谢!

2 个答案:

答案 0 :(得分:74)

对于表格视图单元格,iOS 7中的视图层次结构略有变化。

您可以尝试将剪辑设置为contentView的超级视图中的边界:

[cell.contentView.superview setClipsToBounds:NO];

如果您将以下内容添加到示例代码并在ios7 vs ios6上运行,您会看到单元格视图和内容视图之间还有一个视图:

[cell.contentView.superview setClipsToBounds:NO];
NSLog(@"%@", cell.contentView.superview);
NSLog(@"%@", cell.contentView.superview.superview);
NSLog(@"%@", cell);

if (self.view.clipsToBounds) {
    NSLog(@"Master clips");
} else {
    NSLog(@"Master no clip");
}

答案 1 :(得分:9)

您可以在剪辑子视图的tableview属性检查器中进行更改。

enter image description here