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

当我更新从iOS6到iOS7的一个应用程序时,我注意到当单元格视图或contentView中的clipsToBounds属性设置为NO时,iOS6单元格内容被允许跨越单元格的外部,iOS7似乎禁用了整体视图,tableview,单元格和cellcontent clipsToBounds都设置为NO。 你可以在包含的图像中看到这个样本。 第一个是在iOS6上运行的testing代码,第二个是在iOS7上运行的代码:

这个在iOS6上运行的例子在iOS7上运行相同的代码 有谁知道如何解决这个问题? 我猜这只是一个单行的修复,但我已经花了几个小时在这个没有运气。 为了避免一个重大的重写和头痛,我会,但玩视图,tableview,单元格和cellcontent clipsToBounds已经没有结果 – 所有被设置为仍然在iOS7,所以我不知道发生了什么不同。

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

谢谢!

它看起来像视图层次结构在表视图单元格的ios7中稍微改变。

您可以尝试将剪辑设置为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"); } 

你可能会在Clip Subviews的tableview属性检查器中做出更改。

在这里输入图像说明