iOS自定义PageControl

一个简单实用的自定义PageControl
github地址:XHPageControlDemo
Swift版本请参考:Swift自定义PageControl

PageControl.png
PageControl.png

自定义PageControl

我们经常会用到PageControl,但是系统的PageControl只有一种样式,不支持多样化,这里简单介绍一个简单的自定义PageControl.

主要功能:

  1. 可以自定义两点之间间隙
  2. 可以定义左右间隙
  3. 可以自定义高度
  4. 可以自定义选中点的宽度
  5. 可以设置每个点的圆角大小
  6. 每个点有点击事件
  7. 可以自定义选中和非选中的图片
  8. 可以设置居左、居中、居右样式
  9. 支持长条形状
    10.选中点可以小于非选中点

实现:
将自定义PageControl类拖到项目中,并导入头文件.

//创建pageControl
XHPageControl  *pageControl = [[XHPageControl alloc] initWithFrame:CGRectMake(0, 300,[UIScreen mainScreen].bounds.size.width, 30)];
//设置点的总个数
pageControl.numberOfPages = 7;
//设置非选中点的大小(宽度和高度)
pageControl.otherPointSize = CGSizeMake(12, 6);
//设置选中点的大小(宽度和高度)
pageControl.currentPointSize = CGSizeMake(24, 6);
//设置圆角大小
pageControl.pointCornerRadius = 3;
//设置两点之间的间隙
pageControl.controlSpacing = 3;
//左右间宽,只有在居左居右显示的时候才有用
pageControl.leftAndRightSpacing = 10;
//设置样式.默认居中显示
pageControl.pageAliment = PageControlMiddle;
//非选中点的颜色  
pageControl.otherColor=[UIColor grayColor];
//选中点的颜色  
pageControl.currentColor=[UIColor orangeColor];
//当只有一个点的时候是否隐藏,默认隐藏
pageControl.isHidesForSinglePage = YES;
//是否可以点击,默认不可以点击
pageControl.isCanClickPoint = YES;
//代理    
pageControl.delegate = self;
//标记    
pageControl.tag = 902;
    
[self.view addSubview:pageControl];

代理实现:

#pragma mark - 代理
- (void)xh_PageControlClick:(XHPageControl*)pageControl index:(NSInteger)clickIndex{

    NSLog(@"%ld",clickIndex);
    if(pageControl.tag == 902){
        CGPoint position = CGPointMake([UIScreen mainScreen].bounds.size.width * clickIndex, 0);
        [_scrollView2 setContentOffset:position animated:YES];
    }
}


代码demo:XHPageControlDemo

Swift版本参考JJPageControlDemo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容