首页 >iOS开发

Swift 实现类似于选择电影票的效果,并且实现无限/自动轮播

2018-08-07 11:17 编辑: yyuuzhu 分类:iOS开发 来源:船长_

效果图

horizontal.gif

vertical.gif

实现了什么功能?

  • 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版本下载

作者:船长_
链接:https://www.jianshu.com/p/f9e1b843c77c

搜索CocoaChina微信公众号:CocoaChina
微信扫一扫
订阅每日移动开发及APP推广热点资讯
公众号:
CocoaChina
我要投稿   收藏文章
上一篇:金额跳动动画效果
我来说两句
发表评论
您还没有登录!请登录注册
所有评论(0

综合评论

相关帖子

sina weixin mail 回到顶部