答案 0 :(得分:34)
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
CGFloat height = self.view.frame.size.height;
CGFloat width = self.view.frame.size.width;
// in case you you want the cell to be 40% of your controllers view
return CGSizeMake(width * 0.4, height * 0.4);
}
答案 1 :(得分:10)
Swift 4
您可以这样做:
class yourClassName: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
return CGSize(width: self.myCollectionView.frame.height / 6 * 5, height: self.myCollectionView.frame.height / 6 * 5)
}
}
self.myCollectionView
是您收藏视图中的参考项目
实施UICollectionViewDelegateFlowLayout
因为它不适合另一个单元格,所以只有一行。
答案 2 :(得分:1)
在Swift 4中
您可以从UICollectionViewDelegateFlowLayout
扩展视图控制器并实现此方法:
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let height = collectionView.frame.height
let width = collectionView.frame.width
return CGSize(width: width, height: height)
}
在此示例中,我使像元的宽度等于CollectionView
的宽度,您可以根据需要进行调整。
答案 3 :(得分:0)
有些人可能也需要这样做:在情节提要中,转到“收藏夹”视图内的collectionviewFlowLayout(看起来很立方体),然后转到“大小”检查器,确保将“估计大小”设置为“无”。 “。
答案 4 :(得分:-1)
000-client-id-enforcement.xml
111-json-thread-protection.xml
222-custom-policy.xml
答案 5 :(得分:-1)
要添加到σασίληςΔ的答案中,请确保在您的“收藏夹视图大小”检查器中将估计大小设置为“无”。 image of Estimate Size in size inspector