ChainPageCollectionView alternatives and similar libraries
Based on the "Animation" category.
Alternatively, view ChainPageCollectionView alternatives based on common mentions on social networks and blogs.
-
lottie-ios
An iOS library to natively render After Effects vector animations -
IBAnimatable
Design and prototype customized UI, interaction, navigation, transition and animation for App Store ready Apps in Interface Builder with IBAnimatable. -
SkeletonView
☠️ An elegant way to show users that something is happening and also prepare them to which contents they are awaiting -
ViewAnimator
ViewAnimator brings your UI to life with just one line -
AnimatedCollectionViewLayout
A UICollectionViewLayout subclass that adds custom transitions/animations to the UICollectionView without effecting your existing code. -
Advance
Physics-based animations for iOS, tvOS, and macOS. -
spruce-ios
Swift library for choreographing animations on the screen. -
Presentation
:bookmark_tabs: Presentation helps you to make tutorials, release notes and animated pages. -
EasyAnimation
A Swift library to take the power of UIView.animateWithDuration(_:, animations:...) to a whole new level - layers, springs, chain-able animations and mixing view and layer animations together! -
Gemini
Gemini is rich scroll based animation framework for iOS, written in Swift. -
Stellar
A fantastic Physical animation library for swift -
Fluid Slider
:octocat:💧 A slider widget with a popup bubble displaying the precise value selected. Swift UI library made by @Ramotion -
DKChainableAnimationKit
Easy to read and write chainable animations in Swift. -
YapAnimator
Your fast and friendly physics-based animation system. -
Interpolate
Swift interpolation for gesture-driven animations -
Sica
:deer: Simple Interface Core Animation. Run type-safe animation sequencially or parallelly -
ZoomTransitioning
ZoomTransitioning provides a custom transition with image zooming animation and swiping the screen edge. -
navigation-toolbar
:octocat: Navigation toolbar is a slide-modeled UI navigation controller made by @Ramotion -
JDAnimationKit
Animate easy and with less code with Swift -
CAROUSEL
List a collection of items in a horizontally scrolling view. A scaling factor controls the size of the items relative to the center. -
FlightAnimator
Advanced Natural Motion Animations, Simple Blocks Based Syntax -
Garland View
:octocat: ≡ GarlandView seamlessly transitions between multiple lists of content. Swift UI library made by @Ramotion -
Animo
Bring life to CALayers with SpriteKit-like animation builders -
DSGradientProgressView
A simple animated progress bar in Swift -
SPPerspective
Widgets iOS 14 animation with 3D and dynamic shadow. Customisable transform and duration. -
TheAnimation
Type-safe CAAnimation wrapper. It makes preventing to set wrong type values. -
Walker
Each step you take reveals a new horizon. You have taken the first step today. -
SpriteKitEasingSwift
Better Easing for SpriteKit in Swift -
Poi
Poi makes you use card UI like tinder UI .You can use it like tableview method. -
DottedProgressBar
Simple and powerful animated progress bar with dots -
CocoaSprings
Interactive spring animations for macOS/iOS -
Numbers Animation
Numbers animation allows you to click on different numbers and accordingly it will animate numbers in a cool way. It has a very attractive UI and is very easy to use.
Appwrite - The Open Source Firebase alternative introduces iOS support
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ChainPageCollectionView or a related project?
README
ChainPageCollectionView
A custom View with two level chained collection views and fancy transition animation.
Demo
Requirements
- iOS 9.0+
- Xcode 8
Installation
CocoaPods
Update your Podfile to include the following:
pod 'ChainPageCollectionView', '~> 1.0'
Run pod install
.
NOTE: If you can not find the pod target. Please follow: https://stackoverflow.com/questions/31065447/no-such-module-when-i-use-cocoapods to build your pod target.
Carthage
To integrate ChainPageCollectionView
with Carthage
, specify it in your Cartfile
github "jindulys/ChainPageCollectionView" ~> 1.0
Then, run the following command to build ChainPageCollectionView
framework
$ carthage update
At last, you need to set up your Xcode project manually to add ChainPageCollectionView
framework.
On your application targets’ General
settings tab, in the Linked Frameworks and Libraries
section, drag and drop each framework you want to use from the Carthage/Build
folder on disk.
On your application targets’ Build Phases
settings tab, click the +
icon and choose New Run Script Phase
. Create a Run Script with the following content:
/usr/local/bin/carthage copy-frameworks
and add the paths to the frameworks you want to use under Input Files
:
$(SRCROOT)/Carthage/Build/iOS/ChainPageCollectionView.framework
Check Carthage if you need more help.
Usage
Basic Usage
import ChainPageCollectionView
- Create ChainPageCollectionView
swift // chainView is this view controller's property. chainView = ChainPageCollectionView(viewType: .normal) chainView.delegate = self
Register cell for
parentCollectionView
andchildCollectionView
chainView.parentCollectionView.register(#cellType, forCellWithReuseIdentifier:#cellIdentifier) chainView.childCollectionView.register(#cellType, forCellWithReuseIdentifier:#cellIdentifier)
Implement
ChainPageCollectionViewProtocol
func parentCollectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { // return your parent data source count. }
func parenCollectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { // Dequeue and configure your parent collectionview cell }
func childCollectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { // return your child data source count. }
func childCollectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { // Dequeue and configure your child collectionview cell }
4. Update child collection view data source when parent index has changed.
```swift
// You will get notified by following protocol method.
func childCollectionView(_ collectionView: UICollectionView, parentCollectionViewIndex: Int) {
// When parent collection view's scroll stops, this will get called with new parent collectionview's index.
// You can use this message to fetch related child collection view's new data.
// Once you have the latest child collection view's data, set `childCollectionViewDataReady` to `true`.
// NOTE: This is important to be set, otherwise your child collection view propably will not show up again.
chainView.childCollectionViewDataReady = true
}
Customization
Child Collection View Animation Type
For now ChainPageCollectionView
support two types of child collection view transition animation.
public enum ChainPageChildAnimationType {
case slideOutSlideIn
case shrinkOutExpandIn
}
Default is slideOutSlideIn
, you can set it via initialization stage.
let chainView = ChainPageCollectionView(viewType: .normal,
childAnimationType: #yourchoice)
Layout
You can customize the layout objects by passing them via ChainPageCollectionView
's designated initializer.
let chainView = ChainPageCollectionView(viewType: .normal,
parentColectionViewLayout: #yourlayout,
childCollectionViewLayout: #yourlayout)
ItemSize
You can use parentCollectionViewItemSize
and childCollectionViewItemSize
to set related layouts' itemSize.
Screen Ratio
The default behaviour of this view is that parent collection view takes 3/4
height of this view and child collection view takes the rest. You can set viewType
to a customized ratio with type customParentHeight(#SomeInt, #SomeInt)
let chainView = ChainPageCollectionView(viewType: .customParentHeight(28, 12))
Author
Yansong Li ( [email protected] ), wechat: jindulys_uw
License
Expanding collection is released under the MIT license. See [LICENSE](./LICENSE) for details.
*Note that all licence references and agreements mentioned in the ChainPageCollectionView README section above
are relevant to that project's source code only.