测试已测试 | ✓ |
Lang语言 | SwiftSwift |
许可证 | MIT |
发布最新发布 | 2017年10月 |
SwiftSwift版本 | 4.0 |
SPM支持SPM | ✗ |
由ro6lyo维护。
通过UICollectionView类的实例可访问的。所以基本上,您需要一个UICollectionView的实例,
这些可以是通过代码编程或通过Storyboard创建的。
基本使用
import UICollectionViewGallery
...
@IBOutlet weak var galleryCollectionView: UICollectionView!
的空间,`itemSize`表示细胞的尺寸,`minScaleFactor`表示中心细胞和其余可见细胞之间的缩放因子。
galleryCollectionView.setGallery(withStyle: .autoDynamic, minLineSpacing: 10, itemSize: CGSize(width: 200, height: 200),minScaleFactor:0.6)
请注意,这种方式为垂直和水平布局设置相同的单元格属性,但是如果您需要更定制的设置,您可以通过以下方法分别设置两种流程布局。
galleryCollectionView.setGallery(forLayout: .vertical, minLineSpacing: 10, itemSize: CGSize(width: 200, height:200), minScaleFactor: 0.5)
galleryCollectionView.setGallery(forLayout: .horizontal, minLineSpacing: 20, itemSize: CGSize(width: 300, height:300), minScaleFactor: 0.8)
galleryCollectionView.setGalleryWithCustomFlows(andStyle: .autoDynamic)
您可以通过调用以下函数禁用`无限滚动`和`缩放`,它们默认启用。
galleryCollectionView.setGaleryBehavior(forInfiniteScroll: false, andScalingElemnts: false)
public enum GalleryFlowStyle {
case vertical // vertical flow
case horizontal // horizontal flow
case autoFixed // flow based on initial aspeciRatio eg. height > width = Vertical,
// heignt < width = Horizontal
case autoDynamic // auto flow based on dynamic aspect ratio: requares orientation change event to be catched
}
对于`无限滚动`和`.autoDynamic`样式支持,您必须正确处理2个事件,并调用适当的函数。
func scrollViewDidScroll(_ scrollView: UIScrollView) {
galleryCollectionView.recenterIfNeeded()
}
override func willRotate(to toInterfaceOrientation: UIInterfaceOrientation, duration: TimeInterval) {
galleryCollectionView.changeOrientation()
}
您可以使用以下 UICollectionView 扩展的公共属性找到中心元素的索引路径:`centerCellIndexPath`。
galleryCollectionView.centerCellIndexPath
它返回可选的索引路径,对应于CollectionView的中心元素
要运行示例项目,首先克隆仓库,然后从Example目录运行pod install
。
UICollectionViewGallery可通过CocoaPods获取。要安装
它,只需将以下行添加到您的Podfile中
pod "UICollectionViewGallery"
ro6lyo,[email protected]
UICollectionViewGallery在MIT许可下可用。有关更多信息,请参阅LICENSE文件。