CollectionViewSlantedLayout 是 UICollectionViewLayout 的一个子类,它允许在 UICollectionView 中显示倾斜的单元格。
CollectionViewSlantedLayout 可通过 CocoaPods 获取。要安装它,只需将以下行添加到您的 Podfile 中
use_frameworks!
pod 'CollectionViewSlantedLayout', '~> 3.1'
您也可以通过 Carthage 安装它。为此,请将以下内容添加到您的 Cartfile 中
github 'yacir/CollectionViewSlantedLayout'
将 CollectionViewSlantedLayout
模块导入到您的控制器
import CollectionViewSlantedLayout
创建一个实例并将其添加到您的 UICollectionView
。
let slantedSayout = CollectionViewSlantedLayout()
UICollectionView(frame: .zero, collectionViewLayout: slantedSayout)
对您的单元格使用 CollectionViewSlantedCell
类或对其进行子类化。
在 Examples 文件夹中查找演示。
slantingSize:
@IBInspectable var slantingSize: UInt
倾斜尺寸。此属性的默认值为 75
。
slantingDirection:
var slantingDirection: SlantingDirection
倾斜方向。此属性的默认值为 upward
(向上)。
slantingAngle:
fileprivate(set) var slantingAngle: CGFloat
倾斜的角度,以弧度为单位。此属性的值可用于在 collectionView(_:cellForItemAt:)
方法实现中对单元格的 contentView 应用旋转变换。
if let layout = collectionView.collectionViewLayout as? CollectionViewSlantedLayout {
cell.contentView.transform = CGAffineTransform(rotationAngle: layout.rotationAngle)
}
scrollDirection:
var scrollDirection: UICollectionViewScrollDirection
网格的滚动方向。网格布局仅沿一个轴滚动,水平或垂直。此属性的默认值为 vertical
(垂直)。
isFirstCellExcluded:
@IBInspectable var isFirstCellExcluded: Bool
设置为 true
以禁用第一个单元格的倾斜效果。此属性的默认值为 false
。
isLastCellExcluded:
@IBInspectable var isLastCellExcluded: Bool
设置为 true
以禁用最后一个单元格的倾斜效果。此属性的默认值为 false
。
lineSpacing:
@IBInspectable var lineSpacing: CGFloat
两个项目之间使用的间距。此属性的默认值为 10.0
。
itemSize:
@IBInspectable var itemSize: CGFloat
单元格的默认大小。如果委托未实现 collectionView(_:layout:sizeForItemAt:)
方法,则倾斜布局使用此属性中的值来设置每个单元格的大小。这将导致所有单元格都具有相同的大小。此属性的默认值为 225
。
zIndexOrder:
var zIndexOrder: ZIndexOrder
布局中项目的 zIndex 顺序。此属性的默认值为 ascending
(升序)。
CollectionViewDelegateSlantedLayout
协议定义了允许您与 CollectionViewSlantedLayout
对象协调以实现倾斜布局的方法。 CollectionViewDelegateSlantedLayout
协议具有以下方法
optional func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: CollectionViewSlantedLayout,
sizeForItemAt indexPath: IndexPath) -> CGFloat
此方法询问委托指定项目单元格的大小。
如果您未实现此方法,则倾斜布局将使用其 itemSize
属性中的值来设置项目的大小。您对此方法的实现可以返回一组固定大小,也可以根据单元格的内容动态调整大小。
此框架的灵感来自 Matt Bridges 发布的原型。
CollectionViewSlantedLayout 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。