效果圖
實現了什么功能?
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.whitepageFlowView.delegate = selfpageFlowView.dataSource = selfpageFlowView.minimumPageAlpha = 0.1pageFlowView.isCarousel = truepageFlowView.orientation = .verticalpageFlowView.isOpenAutoScroll = true//初始化pageControllet pageControl = UIPageControl.init(frame: CGRect.init(x: 0, y: pageFlowView.bounds.height-32, width: kScreenW, height: 8))pageFlowView.pageControl = pageControlpageFlowView.addSubview(pageControl)pageFlowView.reloadData()view.addSubview(pageFlowView)
源碼下載:
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。
新聞熱點
疑難解答