zoukankan      html  css  js  c++  java
  • UIPageControl修改圆点大小,根据View大小自适应

    遇到了个基本的控件问题,当设置UIPageControl的frame很小时,上面的小圆点会忽视view的frame而将圆点显示到控件外面。

    但是如果想要设置小一点的圆点,或改变圆点间的间距,从而实现自己想要的样子呢?

    查看UIPageControl的接口发现没有设置圆点间距或大小的属性或方法,搜了一下,一般的思路是重写UIPageControl。代码如下

    .h文件
    #import <UIKit/UIKit.h>
    
    @interface SAPPageControl : UIPageControl
    
    @end
    
    .m文件
    #import "SAPPageControl.h"
    
    @implementation SAPPageControl
    
    - (void)layoutSubviews
    {
        [super layoutSubviews];
        
        CGFloat dotw = self.frame.size.width/(self.subviews.count*2+1);
        
        CGFloat marginX = dotw * 2;
        
        for (int i=0; i<[self.subviews count]; i++)
        {
            UIImageView* dot = [self.subviews objectAtIndex:i];
            
            if (i == self.currentPage)
            {
                [dot setFrame:CGRectMake(i * marginX, dot.frame.origin.y - 1, dotw+0.5, dotw+0.5)];
            }
            else
            {
                [dot setFrame:CGRectMake(i * marginX, dot.frame.origin.y, dotw, dotw)];
            }
        }
    }
    
    @end

    上面的代码根据圆点个数将圆点平均分布到底层视图上。

  • 相关阅读:
    两条斜线
    Cantor表
    城市网络
    一起来数二叉树吧
    牛客网音乐研究(枚举)
    删括号
    合并回文子串
    寻找道路
    EXTJS 4.0.2 XML数据
    extjs4.0.2a gridpanel看不到横向滚动条的一种原因
  • 原文地址:https://www.cnblogs.com/PaulpauL/p/6371303.html
Copyright © 2011-2022 走看看