根据文本调整单元格宽度 – UICollectionView – iOS

前端之家收集整理的这篇文章主要介绍了根据文本调整单元格宽度 – UICollectionView – iOS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个带有UICollectionView的iOS应用程序,它可以水平呈现单元格.在每个单元格中,我添加了一个简单的标签(暂时).这些标签显示名称,有时名称很短,很好……但….有时名称很长,因此它们被切断,因为它们无法在集合视图单元格的宽度内正确匹配.

有没有办法动态调整单元格/标签的宽度,以便正确显示名称文本?

我正在尝试使用这种方法

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(106.f,60.f);
}

但是我对上述方法有两个主要问题:

>如何从此方法访问单元格标签? (这样我才能达到它的高度).
>我如何确切地确定细胞/标签的宽度需要是多少?

谢谢你的时间,

解决方法

您无法访问Label,但可以访问用于填充它的数据.有了它,您可以获得标签的高度和宽度:

CGRect labelRect = [text
                boundingRectWithSize:CGSizeMake(MAX WIDTH OF YOUR LABEL,CGFLOAT_MAX)
                options:NSStringDrawingUsesLineFragmentOrigin
                attributes:@{
                 NSFontAttributeName : [FONT OF YOUR LABEL]
                }
                context:nil];

猜你在找的iOS相关文章