
示例
要运行示例项目,请克隆仓库,然后从示例目录运行 pod install
。
要求
- iOS 10.0+
- Xcode 11+
- Swift 5.0+
安装
手动
- 下载源代码。
- 解压 zip 文件,将文件夹 Classes 直接拖入您的项目中。
- 请确保勾选了 如果需要则复制项目。
Cocoapods
HJLayout 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到您的 Podfile 中:
演示
1. 演示1 - 布局
Pinterest |
 |
let layout = PinterestLayout()
layout.delegate = self
layout.numberOfColumns = 2
layout.cellPadding = 10
必须调用两个函数并检查示例。
func collectionView(collectionView: UICollectionView, heightForImageAtIndexPath indexPath: NSIndexPath, withWidth: CGFloat) -> CGFloat {
let random = arc4random_uniform(4) + 1
return CGFloat((random * 100))
}
func collectionView(collectionView: UICollectionView, heightForAnnotationAtIndexPath indexPath: NSIndexPath, withWidth: CGFloat) -> CGFloat {
return 60
}
用于拉伸式头部
应设置布局headerReferenceSizeHeight并注册头部单元格
let layout = PinterestLayout()
layout.headerReferenceSizeHeight = 180
func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
let cell = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "headerid", for: indexPath) as! pintHeaderCell
return cell
}
StickyHeader |
 |
let layout = StickyHeaderLayout()
layout.headerReferenceSize = CGSize(width: view.frame.width, height: 180)
UltraVisual |
 |
let layout = UltraVisualLayout()
// for smooth snapping
collectionview.decelerationRate = .fast
Timbre |
 |
let layout = TimbreLayout()
layout.minimumLineSpacing = 16
collectionview.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 50, right: 0)
2. 演示2 - 转换
交叉淡入淡出 |
 |
let layout = TransformingLayout()
layout.transformer_type = .crossFading
缩小 |
 |
let layout = TransformingLayout()
layout.transformer_type = .zoomOut
深度 |
 |
let layout = TransformingLayout()
layout.transformer_type = .depth
线性 |
 |
let layout = TransformingLayout()
layout.transformer_type = .linear
摩天轮 |
 |
let layout = TransformingLayout()
layout.transformer_type = .ferrisWheel
反转摩天轮 |
 |
let layout = TransformingLayout()
layout.transformer_type = .invertedFerrisWheel
立方 |
 |
let layout = TransformingLayout()
layout.transformer_type = .cubic
教程
1. 从布局开始
// Create a layout and set property
let layout = PinterestLayout()
layout.delegate = self
layout.numberOfColumns = 2
layout.cellPadding = 10
layout.headerReferenceSizeHeight = 180
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.delegate = self
cv.dataSource = self
2. 开始使用 TransformingLayout
// Create a layout and set property
let layout = TransformingLayout()
layout.transformer_type = .crossFading
let cv = UICollectionView(frame: .zero, collectionViewLayout: layout)
cv.delegate = self
cv.dataSource = self
// for smooth snapping
cv.decelerationRate = .fast
作者
HJKim95, [email protected]
许可协议
HJLayout 项目遵循 MIT 许可协议。更多信息请参阅 LICENSE 文件。