如何以编程方式更改 UICollectionViewCell 大小(使用 Xib)
How to change UICollectionViewCell size programmatically (with Xib)
我创建了 UICollectionViewCell
的自定义子类以及定义单元格大小的 Xib(60 pts x 60 pts)。
我还实现了以下:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize size = [MainScreen screen];
CGFloat width = size.width;
CGFloat item = (width*60)/320;
return CGSizeMake(item, item);
}
我 运行 遇到的问题是每次我 运行 我的程序时,我的 UICollectionView
控制器中的单元格总是显示为 60x60 单元格。此外,我一直在测试 iPhone 6s,它是 375x667 点(因此,计算一下,单元格应该是 ~70x70 而不是 60x60)。
如何以编程方式更改单元格的大小(或者更确切地说,覆盖预定义的 Xib 大小)?
这只是我缺乏经验。 sizeForItemAtIndexPath:
工作正常,但是需要根据 item
参数重新定义细胞图像的实际框架。因此,如果我为我的集合视图单元格的大小硬编码 CGSizeMake(100,100)
,我还需要将占据该单元格的图像框架的大小调整为 100x100。
我创建了 UICollectionViewCell
的自定义子类以及定义单元格大小的 Xib(60 pts x 60 pts)。
我还实现了以下:
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGSize size = [MainScreen screen];
CGFloat width = size.width;
CGFloat item = (width*60)/320;
return CGSizeMake(item, item);
}
我 运行 遇到的问题是每次我 运行 我的程序时,我的 UICollectionView
控制器中的单元格总是显示为 60x60 单元格。此外,我一直在测试 iPhone 6s,它是 375x667 点(因此,计算一下,单元格应该是 ~70x70 而不是 60x60)。
如何以编程方式更改单元格的大小(或者更确切地说,覆盖预定义的 Xib 大小)?
这只是我缺乏经验。 sizeForItemAtIndexPath:
工作正常,但是需要根据 item
参数重新定义细胞图像的实际框架。因此,如果我为我的集合视图单元格的大小硬编码 CGSizeMake(100,100)
,我还需要将占据该单元格的图像框架的大小调整为 100x100。