Swift仿选择电影票的效果并实现无限/自动轮播的方法
效果图
实现了什么功能?
1.类似于选择电影票的效果
2.自动轮播
3.无限轮播
4.非当前显示view具有缩放和透明的特效
5.页面滚动的方向分为横向和纵向
仿照UITableView使用代理实现传值
protocol PageFlowViewDelegate : NSObjectProtocol{ func sizeForPageInFlowView(flowView : PageFlowView) -> CGSize /// 滚动到了某一列 func didScrollToPage(pageNumber : Int,inFlowView flowView : PageFlowView) /// 点击了第几个cell /// /// - Parameters: /// - subView: 点击的控件 /// - subIndex: 点击控件的index func didSelectCell(subView : IndexBannerSubiew,subViewIndex subIndex : Int) } protocol PageFlowViewDataSource : NSObjectProtocol{ /// 返回显示View的个数 func numberOfPagesInFlowView(flowView : PageFlowView) -> Int /// 给某一列设置属性 /// /// - Parameters: /// - flowView: <#flowView description#> /// - index: <#index description#> /// - Returns: <#return value description#> func cellForPageAtIndex(flowView : PageFlowView,atIndex index : Int) -> IndexBannerSubiew }
使用示例
// 模拟器原因,底部会有残影,真机测试没有 let pageFlowView = PageFlowView.init(frame: CGRect.init(x: 0, y: 72, width: kScreenW, height: kScreenW*9/16)) pageFlowView.backgroundColor = UIColor.white pageFlowView.delegate = self pageFlowView.dataSource = self pageFlowView.minimumPageAlpha = 0.1 pageFlowView.isCarousel = true pageFlowView.orientation = .vertical pageFlowView.isOpenAutoScroll = true //初始化pageControl let pageControl = UIPageControl.init(frame: CGRect.init(x: 0, y: pageFlowView.bounds.height-32, width: kScreenW, height: 8)) pageFlowView.pageControl = pageControl pageFlowView.addSubview(pageControl) pageFlowView.reloadData() view.addSubview(pageFlowView)
源码下载:
- Objective-C版本下载 (本地下载)
- Swift版本下载
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
上一篇:Swift源码解析之弱引用
栏 目:Swift
本文标题:Swift仿选择电影票的效果并实现无限/自动轮播的方法
本文地址:https://www.xiuzhanwang.com/a1/Swift/11936.html
您可能感兴趣的文章
- 01-11swift中defer几个简单的使用场景详解
- 01-11Swift利用Decodable解析JSON的一个小问题详解
- 01-11Swift中defer关键字推迟执行示例详解
- 01-11Swift中初始化init的方法小结
- 01-11Swift中定义单例的方法实例
- 01-11Swift利用纯代码实现时钟效果实例代码
- 01-11Swift中排序算法的简单取舍详解
- 01-11Swift如何为设置中心添加常用功能
- 01-11Swift Json实例详细解析
- 01-11Swift利用指纹识别或面部识别为应用添加私密保护功能
阅读排行
本栏相关
- 01-11Swift利用Decodable解析JSON的一个小问题
- 01-11swift中defer几个简单的使用场景详解
- 01-11Swift中初始化init的方法小结
- 01-11Swift中defer关键字推迟执行示例详解
- 01-11Swift利用纯代码实现时钟效果实例代码
- 01-11Swift中定义单例的方法实例
- 01-11Swift中排序算法的简单取舍详解
- 01-11Swift Json实例详细解析
- 01-11Swift如何为设置中心添加常用功能
- 01-11Swift利用指纹识别或面部识别为应用添
随机阅读
- 01-10C#中split用法实例总结
- 01-10SublimeText编译C开发环境设置
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 04-02jquery与jsp,用jquery
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10delphi制作wav文件的方法
- 01-11ajax实现页面的局部加载
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文