Swift自定义PageControl

作者: 香橙柚子 | 来源:发表于2022-09-02 13:58 被阅读0次

    一个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
            }
        }
    }
    
    

    相关文章

      网友评论

        本文标题:Swift自定义PageControl

        本文链接:https://www.haomeiwen.com/subject/msaenrtx.html