1、一个在contentView 上的imageView:
imageView(UITableViewCell中的)的superView是UITableViewCellContentView。
imageView的superView的superView是UITableViewCell
imageView的superView的superView的superView是UITableView
2、在iOS6上UITableViewCell的层级为:
UITableViewCell—>UITableViewCellContentView;
在iOS7上UITableViewCell的层级为:
UITableViewCell—>UITableViewCellScrollView—>UITableCellContentView。
3、iOS7上多了一层,cell不再是contentView的superview,于是
[cell insertSubview:myView belowSubview:cell.contentView];
这个方法执行失败,相当于只是[cell addSubview:myView];,所以达不到想要的效果。
【解决方案】:
要在iOS6和iOS7上都能实现将myView插入到contentView底下的效果,将语句改成如下方式即可:
[cell.contentView.superview insertSubview:myView belowSubview:cell.contentView];
【吐槽】:
坑爹的苹果,坑爹的iOS7,我暂时没有找到任何文档有关于UITableViewCellScrollView这个类的描述,也无法直接引用这个类,Xcode会提示”Unknown type name 'UITableViewCellScrollView’”。还好可以用上面的方法间接引用,否则完全是作死啊。