本文是延续进行了扩展,需求很简单,就是让8个label支持扩展,也就是可以由服务端动态控制label的数量和文字内容,所以,这里首先要做的就是让collectionView的cell大小能够自适应文字的宽度。然后才是动态设置collectionView的尺寸。
为了细分需求,这里只说明如何变化cell的大小。
这里就要用到AutoLayout,由于计算文字宽度的代码都是通用的,这里就不在啰嗦,直接给出。
NSDictionary *attribute = @{NSFontAttributeName: [UIFont systemFontOfSize:15]};CGSize currentLabelSize = [labelText sizeWithAttributes:attribute];CGFloat cellWidth = MAX(50, currentLabelSize.width + 16);
当然,在sizeForItemAtIndexPath要返回这个指定的宽度,这里(50,24)就是原始的cell的大小
return CGSizeMake(cellWidth, 24);
这样做了,可能还是觉得怪怪的
问题已经很清楚了,cell的间距是凌乱的,这个问题放在下一篇去解决!