无法调整 UICollectionView 中的单元格间距
Posted
技术标签:
【中文标题】无法调整 UICollectionView 中的单元格间距【英文标题】:Unable to adjust cell spacing in UICollectionView 【发布时间】:2016-02-24 05:47:52 【问题描述】:我已经在 Swift 中实现了 collectionView,
但是当我在更大屏幕的 iPhone 上查看时,单元格之间的间距会增加。
这是iphoen 5s1的例子:
这是iphone 6的例子2:
这是我的xcode设计3:
我在哪里犯错了? 任何人都可以在这里帮助我..
提前致谢!
【问题讨论】:
检查这个...***.com/questions/17229350/… 也检查一下***.com/questions/28872001/… 【参考方案1】:这解决了我的问题..
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
return CGSizeMake((UIScreen.mainScreen().bounds.width-15)/2,208); //use height whatever you wants.
【讨论】:
【参考方案2】:我认为您应该使用自动布局使单元格的宽度为 CollectionView 宽度的一半并减去一些点,但我不确定这是否可以在情节提要中设置,我主要在代码中执行此操作,使用“collectionViewFlowLayout.setItemSize”设置相对于屏幕宽度的项目大小,或者 UICollectionViewDelegateFlowLayout 也可以;
【讨论】:
【参考方案3】:这样做:
func collectionView(collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
collectionData.contentInset=UIEdgeInsetsMake(0,0,0,0)
let screensize:CGRect=UIScreen.mainScreen().bounds
let width=screensize.width
if (width==320)
let size:CGSize=CGSizeMake(129,140)
collectionData.contentInset=UIEdgeInsetsMake(0,10,0,10)
return size
else if(width==375)
let size:CGSize=CGSizeMake(166,181)
collectionData.contentInset=UIEdgeInsetsMake(0,0,0,0)
return size
else if(width==414)
if(UIDevice.currentDevice().orientation .isLandscape)
let size:CGSize=CGSizeMake(300,185)
collectionData.contentInset=UIEdgeInsetsMake(0,0,0,0)
print("com,ing inside orientatiom");
return size
let size:CGSize=CGSizeMake(177,185)
collectionData.contentInset=UIEdgeInsetsMake(0,0,0,0)
return size
let size:CGSize=CGSizeMake(358,292)
return size
【讨论】:
【参考方案4】:您可以调整所有设备的公共空间 - 目标 c 版本
- (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)
【讨论】:
以上是关于无法调整 UICollectionView 中的单元格间距的主要内容,如果未能解决你的问题,请参考以下文章
我在自定义 TableViewCell 中有一个 UICollectionView,但我无法自动调整 CollectionView 的大小
如何使 UICollectionView 的高度可自动调整和滚动?
UICollectionViewCell 中的 UILabel 有时无法正确调整大小
如何根据 UITableViewCell 中的内容调整水平 UICollectionView 的高度