美文网首页
[iOS]给UIPageControl设置圆点间距

[iOS]给UIPageControl设置圆点间距

作者: 溜萝卜 | 来源:发表于2017-03-07 15:08 被阅读1017次

    ** 平常用pageControl用的少,今天发现怎么setFrame,setSize,setBounds都对间距不起作用,所以跟大家分享一下在网上找到的解决办法**

    • 新建子类 @interface CyclePageControl : UIPageControl
    • 重写 - (void)layoutSubviews
    #define dotW 4.5
    #define activeDotW 6
    #define margin 5
    - (void)layoutSubviews
    {
        [super layoutSubviews];
        
        //计算圆点间距
        CGFloat marginX = margin + 5;
        
        //计算整个pageControll的宽度
        CGFloat newW = (self.subviews.count - 1 ) * marginX;
        
        //设置新frame
        self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, newW, self.frame.size.height);
        
        //设置居中
        CGPoint center = self.center;
        center.x = self.superview.center.x;
        self.center = center;
        
        //遍历subview,设置圆点frame
        for (int i=0; i<[self.subviews count]; i++) {
            UIImageView* dot = [self.subviews objectAtIndex:i];
            
            [dot setFrame:CGRectMake(i * marginX, dot.frame.origin.y, dotW, dotW)];
            
        }
    }
    
    • 顺便一提,设置圆点照片、当前照片用KVC
     [pagecontrol setValue:[UIImage imageNamed:@"icon_xuanzhong"] forKeyPath:@"_currentPageImage"];
     [pagecontrol setValue:[UIImage imageNamed:@"icon_weixuanzhong"] forKeyPath:@"_pageImage"];
    

    相关文章

      网友评论

          本文标题:[iOS]给UIPageControl设置圆点间距

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