一、前言
UICollectionView应该是我们使用的列表类控件中,使用频率仅次于UITableView的控件了,在很多场景下,需要动态的计算并修改UICollectionViewCell的宽度、高度,而代理方法中有没有提供这种方法。
二、代码
实现该方法,并在方法中计算你所需要的宽度、高度,并返回。
- (CGSize)collectionView: (UICollectionView *)collectionView layout: (UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath: (NSIndexPath *)indexPath {
NSDictionary *dict = @{
NSFontAttributeName: [UIFont systemFontOfSize:18]};
NSString *titleStr = @"测试文本";
CGSize detailSize = [titleStr sizeWithAttributes:dict];
CGSize size = CGSizeMake(detailSize.width + 35, 50);//每个cell的宽度自适应
return size;
}
挺好用的一个方法,但是有一个疑问,就是官方的提供的代理方法中并没有这个方法,暂时不太清楚,后面再更新吧。