HJLayout 0.1.5

HJLayout 0.1.5

HeeJung Kim 维护。



HJLayout 0.1.5

  • HJKim95

HJLayout_main Languages
CI Status Version License Platform

示例

要运行示例项目,请克隆仓库,然后从示例目录运行 pod install

要求

  • iOS 10.0+
  • Xcode 11+
  • Swift 5.0+

安装

  • 手动
  • Cocoapods

手动

  1. 下载源代码。
  2. 解压 zip 文件,将文件夹 Classes 直接拖入您的项目中。
  3. 请确保勾选了 如果需要则复制项目

Cocoapods

HJLayout 通过 CocoaPods 提供使用。要安装它,只需将以下行添加到您的 Podfile 中:

pod 'HJLayout'

演示

1. 演示1 - 布局

Pinterest
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
StickyHeader
let layout = StickyHeaderLayout()
layout.headerReferenceSize = CGSize(width: view.frame.width, height: 180)

UltraVisual
UltraVisual
let layout = UltraVisualLayout()
// for smooth snapping
collectionview.decelerationRate = .fast

Timbre
Timbre
let layout = TimbreLayout()
layout.minimumLineSpacing = 16
collectionview.contentInset = UIEdgeInsets(top: 50, left: 0, bottom: 50, right: 0)

2. 演示2 - 转换

交叉淡入淡出
crossFading
let layout = TransformingLayout()
layout.transformer_type = .crossFading

缩小
zoomOut
let layout = TransformingLayout()
layout.transformer_type = .zoomOut

深度
depth
let layout = TransformingLayout()
layout.transformer_type = .depth

线性
linear
let layout = TransformingLayout()
layout.transformer_type = .linear

摩天轮
ferrisWheel
let layout = TransformingLayout()
layout.transformer_type = .ferrisWheel

反转摩天轮
invertedFerrisWheel
let layout = TransformingLayout()
layout.transformer_type = .invertedFerrisWheel

立方
cubic
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 文件。