在iOS7上的UICollectionViewCell子类中未更新约束

Joh*_*erg 4 objective-c ios autolayout uicollectionview

我有一个基于集合视图的布局,根据内容不同的单元格大小.常规单元格为200x200像素,但如果没有内容,则显示与集合视图本身大小相同的单元格.

我用

- (CGSize)collectionView:(UICollectionView *)collectionView
                  layout:(UICollectionViewLayout *)collectionViewLayout
  sizeForItemAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)

计算正确的大小.

但是,我对单元格的子视图不会更新其约束.单元格非常简单,只是一个应该在单元格超视图中居中的UILabel.我有一个水平和一个垂直中心约束(也试图将每个边缘固定到superview).结果是子视图的大小和位置与Interface Builder(Storyboard)中输入的大小和位置相同.

我为单元格和标签设置了背景颜色,可以看到单元格的大小正确,但标签却没有.

该问题仅存在于iOS7中,并且在iOS8中可以正常工作.

请帮忙!

截图

Joh*_*erg 11

谢谢Stackover流程相关问题窗格!找到这个线程,它解决了我的问题.

UICollectionViewCell中的自动布局无法正常工作

我把它放在我的UICollectionViewCell子类中:

- (void)setBounds:(CGRect)bounds {
    [super setBounds:bounds];
    self.contentView.frame = bounds;
}
Run Code Online (Sandbox Code Playgroud)