UICollectionView 显示多种尺寸的单元格?
UICollectionView showing cells with multiple sizes?
我的故事板中有一个 UICollectionView
,其中有一个 UICollectionViewCell
,我已单击并拖动它以使其大小为 100w 100h。我还有一个 swift 文件控制它。代码如下:
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
//#warning Incomplete method implementation -- Return the number of sections
return 4
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//#warning Incomplete method implementation -- Return the number of items in the section
return 10
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UICollectionViewCell
// Configure the cell
return cell
}
当我 运行 但是,第一行被拉伸成这样:
如何让它们的大小相同?
您的问题不是 "stretched" 第一行单元格。它是 0 点的部分插入,这导致部分 0 的最后一个单元格与部分 1 的第一个单元格齐平。
您可以通过实施 UICollectionViewDelegateFlowLayout
并设置插入部分来解决此问题。让你的class符合UICollectionViewDelegateFlowLayout
,将collectionView.delegate
设置为self
,实现UICollectionViewDelegateFlowLayout
想要的功能。相关委托职能包括:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat
我的故事板中有一个 UICollectionView
,其中有一个 UICollectionViewCell
,我已单击并拖动它以使其大小为 100w 100h。我还有一个 swift 文件控制它。代码如下:
override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
//#warning Incomplete method implementation -- Return the number of sections
return 4
}
override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
//#warning Incomplete method implementation -- Return the number of items in the section
return 10
}
override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! UICollectionViewCell
// Configure the cell
return cell
}
当我 运行 但是,第一行被拉伸成这样:
如何让它们的大小相同?
您的问题不是 "stretched" 第一行单元格。它是 0 点的部分插入,这导致部分 0 的最后一个单元格与部分 1 的第一个单元格齐平。
您可以通过实施 UICollectionViewDelegateFlowLayout
并设置插入部分来解决此问题。让你的class符合UICollectionViewDelegateFlowLayout
,将collectionView.delegate
设置为self
,实现UICollectionViewDelegateFlowLayout
想要的功能。相关委托职能包括:
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAtIndex section: Int) -> UIEdgeInsets
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAtIndex section: Int) -> CGFloat