Swift自定義PageControl

一個Swift版簡單實用的自定義PageControl。
github地址:JJPageControl
OC請參考:iOS自定義PageControl

PageControl.png
PageControl.png

自定義PageControl

我們經常會用到PageControl,但是系統的PageControl只有一種樣式,不支持多樣化,這里簡單介紹一個簡單的自定義PageControl.

主要功能:

  1. 可以自定義兩點之間間隙
  2. 可以定義左右間隙
  3. 可以自定義高度
  4. 可以自定義選中點的寬度
  5. 可以設置每個點的圓角大小
  6. 每個點有點擊事件
  7. 可以自定義選中和非選中的圖片
  8. 可以設置居左、居中、居右樣式
  9. 支持長條形狀
  10. 選中點可以小于非選中點

將項目工程中的JJPageControl拖拽到你的項目中.

    //創建pageControl
    var pageControl2 = JJPageControl()
    pageControl2.frame = CGRect(x: 0, y: 300, width: UIScreen.main.bounds.size.width, height: 30)
    //選中點的顏色  
    pageControl2.currentColor = UIColor.red
    //非選中點的顏色
    pageControl2.otherColor = UIColor.blue
    //設置圓角大小
    pageControl2.pointCornerRadius = 2
    //設置選中點的大?。▽挾群透叨龋?    pageControl2.currentPointSize = CGSize(width: 6, height: 12)
    //設置非選中點的大小(寬度和高度)
    pageControl2.otherPointSize = CGSize(width: 10, height: 6)
    //設置樣式.默認居中顯示
    pageControl2.pageAliment = .Center
     //設置點的總個數
    pageControl2.numberOfPages = 7
    //交互打開
    pageControl2.isUserInteractionEnabled = true
    //設置兩點之間的間隙
    pageControl2.controlSpacing = 3
    //左右間寬,只有在居左居右顯示的時候才有用
    pageControl2.leftAndRightSpacing = 10
    //是否可以點擊,默認不可以點擊
    pageControl2.isCanClickPoint = true
    //當只有一個點的時候是否隱藏,默認隱藏
    pageControl2.isHidesForSinglePage = YES;
    //標記  
    pageControl2.tag = 902
    //代理  
    pageControl2.delegate = self

    view.addSubview(pageControl2)

實現代理方法:

extension ViewController:JJPageControlDelegate{
    func jj_pageControlClick(pageControl: JJPageControl, index: Int) {
        
    print("帶擊了第\(index)個")
        
    }
    
}

修改當前選中


extension ViewController: UIScrollViewDelegate {
    
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        let currentIndex = Int(scrollView.contentOffset.x / UIScreen.main.bounds.size.width)
        let tag = scrollView.tag        
        switch tag {
        case 10002:
            pageControl2.currentPage = currentIndex
        default:
            return
        }
    }
}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。