【问题标题】:Vertically Align the cells of UICollectionView to top in swift快速将 UICollectionView 的单元格垂直对齐到顶部
【发布时间】:2014-11-10 18:35:56
【问题描述】:

如何快速将 uicollectionview 的单元格垂直对齐到顶部?

我看到人们在 Objective-c 中对它们进行子类化,但我还没有在 swift 中找到答案。

谢谢

【问题讨论】:

  • 您是否尝试过使用 Swift 完成与您的目标 c 示例等效的操作?
  • 我不是很了解它,我从来没有创建过扩展

标签: swift uicollectionview uicollectionviewcell uicollectionviewlayout


【解决方案1】:

我最终使用了 FSQCollectionView,它非常适合我的需求。

该项目在这里可用:

https://github.com/foursquare/FSQCollectionViewAlignedLayout

需要的两种方法是:

func collectionView(collectionView: UICollectionView!, layout collectionViewLayout: FSQCollectionViewAlignedLayout!, attributesForSectionAtIndex sectionIndex: Int) -> FSQCollectionViewAlignedLayoutSectionAttributes! {

    return FSQCollectionViewAlignedLayoutSectionAttributes.withHorizontalAlignment(FSQCollectionViewHorizontalAlignment.Center, verticalAlignment: FSQCollectionViewVerticalAlignment.Top)
}

 func collectionView(collectionView: UICollectionView!, layout collectionViewLayout: FSQCollectionViewAlignedLayout!, sizeForItemAtIndexPath indexPath: NSIndexPath!, remainingLineSpace: CGFloat) -> CGSize {

        return CGSizeMake(100, 100)
    }

【讨论】:

  • 嗨,我一直在尝试将此方法实施到我的项目中。我正确添加了.m.h 文件。我创建了你上面提到的方法。但是我在项目中得到的这些方法存在问题,不起作用。我添加了print(_:) 来测试它,它什么也没打印。你写这个答案已经很长时间了,但任何帮助都会让我感激。
  • 解决方案是什么?我没有用断点来打这些方法。我错过了什么?
【解决方案2】:

我使用了提供的库,但我认为有必要提供一个新答案,因为对于那些不是 100% 熟悉自定义布局如何与 UICollectionViews 一起使用的人来说,最后一个答案是相当不完整的。

第 1 步 - 导入两个文件 FSQCollectionViewAlignedLayout.hFSQCollectionViewAlignedLayout.m(或将 pod 'FSQCollectionViewAlignedLayout' 放入您的 podfile 并运行 pod install

第 2 步 - 将它们添加到您的桥接头中,因为您可能正在使用 Swift。 (如果您作为 pod 导入,则不需要)

第 3 步 - 在您的故事板中,将属性检查器中的“布局”属性更改为自定义,然后在该字段中添加您的自定义类 (FSQCollectionViewAlignedLayout)。

第 4 步 - 将委托方法添加到您的 ViewController 并根据需要编辑属性。还要确保 import FSQCollectionViewAlignedLayout 在 ViewController 类的顶部。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-07
    • 2015-10-18
    • 2017-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 1970-01-01
    相关资源
    最近更新 更多