iOS 7的重新设计导致了UITableViewCells视图层次结构的改变。单元格的内容视图包装在一个名为UITableViewCellScrollView的私有类中。
在iOS 7中,UITableViewCellScrollView将clipsToBounds设置为YES,UITableViewCellContentView将clipToBounds设置为NO。
在iOS 7.1中,UITableViewCellScrollView将clipsToBounds设置为NO,UITableViewCellContentView将clipToBounds设置为NO。
如果您在[[self contentView] setClipsToBounds:YES] 7.1中调用iOS,它会继续吗?当在单元格上调用layoutSubviews时,UITableViewCellContentView又将clipToBounds设置为NO。
[[self contentView] superview] setClipsToBounds:YES]在iOS 7.1中工作,并将UITableViewCellScrollView的clipToBounds设置为YES,但这是一个非常脆弱的解决方案。
在单元上重写layoutSubview并调用[[self contentView] setClipsToBounds:YES]可以工作,但这是另一种fraile解决方案。
有谁知道为什么会做出这种改变,并找到一个更有力的解决方案吗?
发布于 2014-03-14 17:46:14
正如注释中所讨论的,目前iOS7.1中唯一的解决方案是在单元格本身上设置clipsToBounds。
发布于 2014-08-06 17:32:31
挺烦人的。我所做的是在相同大小的contentView中添加一个contentView(以及宽度相同的autoresizingMask ),将相关内容添加到该视图中,并将clipsToBounds设置为该视图。
发布于 2016-03-11 19:21:19
我碰到了一些问题,我终于用一种丑陋的方式解决了这个困惑的问题。
// Create a subclass of UITableView
// Then override setClipsToBounds:
- (void)setClipsToBounds:(BOOL)clipsToBounds {
[super setClipsToBounds:YES];
}https://stackoverflow.com/questions/22387124
复制相似问题