效果圖

horizontal.gif

vertical.gif
實現(xiàn)了什么功能?
- 1.類似于選擇電影票的效果
- 2.自動輪播
- 3.無限輪播
- 4.非當前顯示view具有縮放和透明的特效
- 5.頁面滾動的方向分為橫向和縱向
仿照UITableView使用代理實現(xiàn)傳值
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的個數(shù)
func numberOfPagesInFlowView(flowView : PageFlowView) -> Int
/// 給某一列設(shè)置屬性
///
/// - 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)