超出UITableViewCell范围时,子视图会被修剪

时间:2014-07-26 12:33:54

标签: ios objective-c uitableview

我一直在四处寻找,无法找到问题的解决方案。我有一个UIImageView作为UITableViewCell的子视图,我将其添加到cellForRowAtIndexPath中,子视图的框架从单元格1开始,然后离开单元格1,进入单元格2。

基本上,我希望我的图像位于两个单元格的中间。现在,当tableView首次加载时,它会正确显示,但是当我向下滚动单元格并返回时,图像会被修剪,仅显示处于单元格1边界的部分。

我知道iOS 7在scrollViewcontentView之间有一个cell。当我登录cellForRowAtIndexPath时:

if (cell.contentView.superview.clipsToBounds == YES || cell.contentView.clipsToBounds == YES || cell.clipsToBounds == YES) {
    NSLog(@"CLIP = YES");
} else {
    NSLog(@"CLIP = NO");
}

它告诉我cellcontentViewscrollView将属性clipToBounds设置为NO,这就是我想要的。

我只是不知道为什么subviews仍然被修剪。

1 个答案:

答案 0 :(得分:1)

我遇到了和你一样的问题。

我意识到问题是我的手机背景不透明。子视图没有被修剪,它们只是被先前添加的单元格的背景颜色覆盖。

您无法控制将单元格添加到表格视图的顺序,因此您必须使用[UIColor clearColor]作为单元格的背景颜色才能获得所需的效果。

如果这是一个问题,请将您的子视图的zPosition设置为足够高的数字,并且您希望自己好好去。