iOS 重写UIPageControl 自定义样式

UIPageControl是苹果自带的一个分页控制器,但是它的样式可能不会满足我们所有的需求,系统自带的样式是圆形且大小固定的。但是我们可以通过重写UIPageControl来达到我们想要的效果.

具体步骤

  • 创建一个类,继承于UIPageControl
  • 重写init方法,记得设置 self.userInteractionEnabled = NO;
    否则UIPageController可以被点击)
13181556-FDAE-4F07-A616-EAC31224A61B.png
  • 最后重写set方法,修改他的样式(大小,圆角都可以设置,位置,背景图等)
7D7B9531-3AA6-4853-976E-DDB82717690E.png

我最终想要的效果是让它变成方形的,你们需要什么样式根据需求自定义就行啦

27B9BB2E-37D1-467B-B1A0-824BC49ABD21.png

核心代码

 - (instancetype)init
{
    self = [super init];
    if (self) {
        self.userInteractionEnabled = NO;
    }
    return self;
}
-(void)setCurrentPage:(NSInteger)currentPage{
    [super setCurrentPage:currentPage];
    
    for (NSUInteger subviewIndex = 0; subviewIndex < [self.subviews count]; subviewIndex++) {
        
        UIImageView* subview = [self.subviews objectAtIndex:subviewIndex];
        
//        CGSize size;
        
//        size.height = 12;
//        
//        size.width = 12;
//        
//        [subview setFrame:CGRectMake(subview.frame.origin.x, subview.frame.origin.y,
//                                     
//                                     size.width,size.height)];
        
        if (subviewIndex == currentPage)
         
//        subview.image =[UIImage imageNamed:@"60.png"];
        {    subview.layer.cornerRadius = 0;
        subview.layer.masksToBounds = YES;
        }
        else
        {    //subview.image =[UIImage imageNamed:@"60.png"];
            subview.layer.cornerRadius = 0;
            subview.layer.masksToBounds = YES;
        
        }
    }
      ~~~
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 离开学校两个月零17天,拿毕业证的前一天晚上去找秋姐吃了个饭,散步回家的时候,跟秋姐呢呢喃喃着说了好多话,从选志愿...
    芽藤儿阅读 358评论 0 2
  • 每个人都是有多面性的。很多时候我们因为看到了一个人的某一个面而就喜欢上了对方。当对方展露出了另外的一面,你可能因此...
    社交思维阅读 382评论 0 0
  • 亲子阅读每一天,1月13日今天晚上阅读《和甘伯伯去游河》这一本绘本,其实读过好多次。妈妈觉得这是一本“订规矩”的启...
    亭子妈咪阅读 277评论 0 0
  • 小S,黄子佼,曾宝仪,上演世纪大和解,2015年,在第50届金钟奖上,小S居然直接点名前男友黄子佼和前情敌曾宝仪上...
    吴石磊阅读 743评论 0 1