27

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

在 iOS6 上运行的示例 在 iOS7 上运行相同的代码 有谁知道如何解决这个问题?我猜这只是一个单行修复,但我已经花了几个小时没有运气。为了避免重大的重写和头疼我会,但是玩视图,表格视图,单元格和单元格内容剪辑ToBounds 一直没有结果 - 在iOS7上仍然设置为NO,所以我不确定发生了什么不同。

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

谢谢!

4

2 回答 2

76

看起来 iOS 7 中表格视图单元格的视图层次结构略有变化。

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

[cell.contentView.superview setClipsToBounds:NO];

如果您将以下代码添加到示例代码并在 ios7 和 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");
}
于 2013-09-18T17:04:02.397 回答
12

您可以在 Clip Subviews 的 tableview 属性检查器中进行更改。

在此处输入图像描述

于 2014-12-03T08:32:52.297 回答