效果圖
實現了什么功能?
1.類似于選擇電影票的效果
2.自動輪播
3.無限輪播
4.非當前顯示view具有縮放和透明的特效
5.頁面滾動的方向分為橫向和縱向
仿照UITableView使用代理實現傳值
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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 } |
使用示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
// 模擬器原因,底部會有殘影,真機測試沒有 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) |
源碼下載:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。
原文鏈接:https://www.jianshu.com/p/f9e1b843c77c