如何动态强制UICollectionViewCell的宽度

时间:2014-09-24 21:55:08

标签: ios autolayout uicollectionviewcell

我有一个UICollectionViewCell,动态调整大小并使用自动布局。

- (CGSize) collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{

  // Force cell layout and take auto layout height
    [self configureCell:_sizingCell forIndexPath:indexPath];


    return [_sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];

}

这适用于调整大小但宽度占用太多空间。我需要根据屏幕尺寸强制对此进行宽度约束,然后让自动布局从那里计算出高度。我该如何正确地做到这一点?我需要这个在iOS 7和iOS 8中工作。

1 个答案:

答案 0 :(得分:-1)

如果尚未将细胞的前缘和后缘约束到集合视图的左右边缘。这使细胞具有固定的宽度。高度比较棘手。单元格中的所有标签必须具有0的行高并设置为自动换行 - 您通常不希望截断字符串或​​缩小字体大小。接下来,确保所有项目都是垂直约束的,但不要给它们固定的高度。这将允许它们垂直生长,只要它们垂直约束到它们上方和下方的控件,就应该得到你想要的效果。