美文网首页iOS开发
iOS 重写UIPageControl 自定义样式

iOS 重写UIPageControl 自定义样式

作者: AmumuHandsome | 来源:发表于2017-06-14 15:53 被阅读2615次

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;
        
        }
    }
      ~~~

相关文章

网友评论

  • __阳阳:其实可以不用关闭用户交互, 在layoutSubviews方法里边设置就好小圆点的frame就好
    AmumuHandsome:嗯, 谢谢您的建议,我试试。
  • 43e7d9ac7ac8:你好,楼主,我想问一下我设置了长方形,在iOS版本10之前运行没问题,但是运行iOS11就会一会儿圆角一会长方形的乱跳了,这是为什么,求指教
    yscGr:@BennerZhang 怎么回事?
    43e7d9ac7ac8:@AmumuHandsome 好的,谢谢,问题解决了:joy:
    AmumuHandsome:我用iOS 11运行但是没发现问题呢:smiley: 你再检查检查写法还是其他方面的问题

本文标题:iOS 重写UIPageControl 自定义样式

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