登录 立即注册
金钱:

[Swift2]Display Switcher

来自: 李世铿 分类: iOS精品源码 上传时间: 2016-8-17 11:38:29

项目介绍:

[分享]Display Switcher

Display Switcher实现了在两个collection view layouts之间的自定义转场动画



Requirements 环境需求
  • iOS 8.0+ (for component), iOS 9.0+ (for example)
  • Xcode 7
  • Swift 2


Installing with CocoaPods
use_frameworks!
pod ‘DisplaySwitcher’, '~> 0.1.1’


Installing with Carthage
github "Yalantis/DisplaySwitcher" ~> 0.1.0

使用方法:

import DisplaySwitcher:
[Objective-C] 查看源文件 复制代码
import DisplaySwitcher



Then create two layouts (layout for list mode and grid mode): 创建两种
layouts
[Objective-C] 查看源文件 复制代码
private lazy var listLayout = BaseLayout(staticCellHeight: listLayoutStaticCellHeight, nextLayoutStaticCellHeight: gridLayoutStaticCellHeight, layoutState: .ListLayoutState)

private lazy var gridLayout = BaseLayout(staticCellHeight: gridLayoutStaticCellHeight, nextLayoutStaticCellHeight: listLayoutStaticCellHeight, layoutState: .GridLayoutState)



Set current layout:

[Objective-C] 查看源文件 复制代码
private var layoutState: CollectionViewLayoutState = .ListLayoutState
collectionView.collectionViewLayout = listLayout



重写UICollectionViewDataSource方法
[Objective-C] 查看源文件 复制代码
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
    // count of items
}

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
    // configure your custom cell
}



重写UICollectionViewDelegate方法用来自定义 layout transition
[Objective-C] 查看源文件 复制代码
func collectionView(collectionView: UICollectionView, transitionLayoutForOldLayout fromLayout: UICollectionViewLayout, newLayout toLayout: UICollectionViewLayout) -> UICollectionViewTransitionLayout {
    let customTransitionLayout = TransitionLayout(currentLayout: fromLayout, nextLayout: toLayout)
    return customTransitionLayout
}



以下方法创建转场动画(可以更改动画时间和汉堡按钮的旋转角度度数)

[Objective-C] 查看源文件 复制代码
let transitionManager: TransitionManager
if layoutState == .ListLayoutState {
    layoutState = .GridLayoutState
    transitionManager = TransitionManager(duration: animationDuration, collectionView: collectionView!, destinationLayout: gridLayout, layoutState: layoutState)
} else {
    layoutState = .ListLayoutState
    transitionManager = TransitionManager(duration: animationDuration, collectionView: collectionView!, destinationLayout: listLayout, layoutState: layoutState)
}
transitionManager.startInteractiveTransition()
rotationButton.selected = layoutState == .ListLayoutState
rotationButton.animationDuration = animationDuration



DEMO 直接下载:


相关源码推荐:

我来说两句
*滑动验证:
所有评论(48)
1467306558 2016-8-17 11:48:38
学习学习!
回复
code4app热心网友 2016-8-17 11:49:36
我只是路过打酱油的。
回复
code4app热心网友 2016-8-17 11:52:09
淡定,淡定,淡定……
回复
code4app热心网友 2016-8-17 11:52:58
感谢分享,Code4App有你更精彩:)
回复
code4app热心网友 2016-8-17 12:23:50
正需要啊,感谢楼主无私分享!
回复
code4app热心网友 2016-8-17 12:33:05
楼主用心了,内容非常精彩。
回复
mkjhgfdsa123 2016-8-17 13:23:49
虽不明,但觉厉!
回复
code4app热心网友 2016-8-17 13:58:06
楼主用心了,内容非常精彩。
回复
code4app热心网友 2016-8-17 13:58:35
正需要啊,感谢楼主无私分享!
回复
12345下一页
提取码:  下载次数:75 状态:已购或VIP 售价:0(原价:10)金钱 下载权限:初级码农 
707 0 75
代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表