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

jon*_*der 25 ios ios7

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

这个在iOS6上运行的示例 在iOS7上运行相同的代码 有谁知道如何解决这个问题?我猜这只是一个单行修复,但我花了几个小时没有运气.为了避免重大的重写和头痛我,但玩视图,tableview,cell和cellcontent clipsToBounds一直没用 - 所有在iOS7上都设置为NO,所以我不确定发生了什么不同.

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

谢谢!

rjo*_*ens 75

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

您可以尝试将剪辑设置为contentView的superview上的边界:

[cell.contentView.superview setClipsToBounds:NO];
Run Code Online (Sandbox Code Playgroud)

如果您将以下内容添加到示例代码中并在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");
}
Run Code Online (Sandbox Code Playgroud)

  • 在iOS 7.1中,单元格的UITableViewCellScrollView将clipsToBounds显式设置为NO.这也发生在UITableViewCellContentView上. (3认同)

Cao*_*ong 9

您可以在Clip子视图的tableview属性检查器中进行更改.

在此输入图像描述