SNCollectionViewLayout
Collection View Layouts is a set of custom flow layouts for iOS which imitate general data grid approaches for mobile apps.
Install / Use
/learn @ahmedAlmasri/SNCollectionViewLayoutREADME
SNCollectionViewLayout
<b>ScreenShots</b>
<img src="https://github.com/ahmedAlmasri/SNCollectionViewLayout/blob/master/screenshot/img1.png" width="450">Example
To run the example project, clone the repo, and run pod install from the Example directory first.
Using
1- Create instance
let snCollectionViewLayout = SNCollectionViewLayout()
snCollectionViewLayout.fixedDivisionCount = 4 // Columns for .vertical, rows for .horizontal
snCollectionViewLayout.delegate = self
myCollectionView.collectionViewLayout = snCollectionViewLayout
2- Delegate
// scale for items based number of columns
func scaleForItem(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, atIndexPath indexPath: IndexPath) -> UInt {
if indexPath.row == 0 || indexPath.row == 3 || indexPath.row == 10 || indexPath.row == 70 {
return 2
}
return 1
}
// height for item if set fixedDimension height equal width
func itemFlexibleDimension(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, fixedDimension: CGFloat) -> CGFloat {
return fixedDimension
}
// header height
func headerFlexibleDimension(inCollectionView collectionView: UICollectionView, withLayout layout: UICollectionViewLayout, fixedDimension: CGFloat) -> CGFloat {
return 0
}
Requirements
- Swift 4.2+
- Xcode 10.0+
- iOS 11.0+
Installation
SNCollectionViewLayout is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'SNCollectionViewLayout'
Author
ahmedAlmasri, ahmed.almasri@ymail.com
License
SNCollectionViewLayout is available under the MIT license. See the LICENSE file for more info.
Related Skills
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
