gpt4 book ai didi

ios - 如何在 UICollectionView 中每行显示 3 个单元格?

转载 作者:可可西里 更新时间:2023-11-01 03:38:05 25 4
gpt4 key购买 nike

我根据 this post 使用了自定义流布局.这是我的实现:

@implementation CustomLayout
-(void)prepareLayout{
[super prepareLayout];
// [self invalidateLayout];
if(self.collectionView){
CGSize newItemSize=self.itemSize;

// Number of items per row
int itemsPerRow=3;

float totalSpacing=self.minimumLineSpacing*(itemsPerRow-1);

newItemSize.width=(self.collectionView.bounds.size.width -totalSpacing)/itemsPerRow;

if(self.itemSize.height>0){
float itemAspectRatio=self.itemSize.width/self.itemSize.height;
newItemSize.height=newItemSize.width/itemAspectRatio;
}

[self setItemSize:newItemSize];

}


}
@end

这就是我得到的:Result我错过了什么?我遇到过其他一些 SO 帖子,但到目前为止运气不好。

最佳答案

swift 3.0。适用于水平和垂直滚动方向以及可变间距

声明每行你想要的单元格数

let numberOfCellsPerRow: CGFloat = 3

配置 flowLayout 以呈现指定的 numberOfCellsPerRow

if let flowLayout = collectionView?.collectionViewLayout as? UICollectionViewFlowLayout {
let horizontalSpacing = flowLayout.scrollDirection == .vertical ? flowLayout.minimumInteritemSpacing : flowLayout.minimumLineSpacing
let cellWidth = (view.frame.width - max(0, numberOfCellsPerRow - 1)*horizontalSpacing)/numberOfCellsPerRow
flowLayout.itemSize = CGSize(width: cellWidth, height: cellWidth)
}

关于ios - 如何在 UICollectionView 中每行显示 3 个单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com