這篇文章主要給大家介紹了關於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)
源碼下載:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對神馬文庫的支持。