如何在所有设备中使用 swift4 在 CollectionView 中显示三列
Posted
技术标签:
【中文标题】如何在所有设备中使用 swift4 在 CollectionView 中显示三列【英文标题】:How to show three columns in a CollectionView using swift4 in all devices 【发布时间】:2018-04-12 11:54:59 【问题描述】:func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
if collectionView == self.collectionViewVideo
var collectionViewSize = collectionViewVideo.frame.size
collectionViewSize.width = collectionViewSize.width/3.0 //Display Three elements in a row.
return collectionViewSize
else
return CGSize(width: 60, height: 60)
【问题讨论】:
【参考方案1】:您还需要考虑空间。 Space 是您的集合视图项目空间
以下是代码有两个单元格和 20 个空格。 (我没有写你需要的代码你应该自己做)
extension YourViewController : UICollectionViewDelegateFlowLayout
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat
return 20
//--------------------------------------------------------------------------------
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat
return 20;
//--------------------------------------------------------------------------------
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize
return CGSize(width: ( self.collectionView.frame.size.width - 60 ) / 2,height:( self.collectionView.frame.size.width - 60 ) / 2)
//--------------------------------------------------------------------------------
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets
return UIEdgeInsetsMake(0, 20, 20, 20)
这里60
表示SPACE 20 CELL SPACE 20 CELL SPACE 20
【讨论】:
什么是 insetForSectionAt 先生? inset 是单元格开始的位置。有了它,您可以将左侧空间应用于您的第一个单元格(20 像素),将右侧空间应用于您的右侧单元格(20 像素) @GoribDeveloper 尝试使用该部分并尝试理解它。所以你下次不需要提出问题或需要来自互联网的帮助 @GoribDeveloper 如果我的回答有帮助,如果您不介意,请将其标记为已接受 :)以上是关于如何在所有设备中使用 swift4 在 CollectionView 中显示三列的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift4 中取消选中 TableView 所有 TableView 选择
如何在 Swift 4 中修改 fileManager url 以指向另一个目录