如何根据内容大小获取CollectionViewCell内容高度?

时间:2018-07-05 05:27:38

标签: ios objective-c collectionview

CollectionViewCell中的CollectionView很少。单击按钮后,我需要调整选定的CollectionViewCell高度。请帮忙。

   - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
        if (indexPath.section == 2) 
        {

            CGFloat h = self.collectionView.contentSize.height;


            if (isExpandedAboutUs && indexPath.row == 0)
            {
                return CGSizeMake(ScreenW, h); 
            }

            return CGSizeMake(ScreenW, 100);
        }
    }

self.collectionView.contentSize.height将返回CollectionView的高度。我需要选择的单元格内容大小。

1 个答案:

答案 0 :(得分:1)

您可以在选择单元格时尝试以下代码:

 override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    let cell = collectionView.cellForItem(at: indexPath)
    let contentSize = cell?.contentView.bounds.size
    print(contentSize)
}

如果要从其他方法获取大小,则可能需要找到单元格选择的索引路径并相应地传递索引路径。喜欢:

func yourMethod() {
    let selectedIndexPath = IndexPath(item: 0, section: 0)  //get your indexpath here
    let cell = collectionView?.cellForItem(at: selectedIndexPath)
    let contentSize = cell?.contentView.bounds.size
    print(contentSize)
}

根据打印语句,您为contentSize获得的值与您在sizeForItemAtIndexPath方法中返回的大小相同。