• ios UIPageControl 点颜色设置的总结


    ios pageControl控件没有点颜色的设置,一开始自己还不信,就一个颜色属性修改,苹果不会这么坑吧,做了很多东西你就会慢慢发现苹果就是这样抗,很多功能得自己去完善。

    本来在网上找了些资料都是将pageControl的点当做成一个UIImage,本人用的是xcode5.2调试发现,pageControl子控件没有UIImageView,点是一个UIviwe,通过修改view的layer控制形状。知道这点后自己就有了思路了。

    思路:

    1、写一个继承UIPageControl类

    2、重写UIPageControl的 setCurrentPage方法

    3、修改当前点的颜色

    code:

    #import <UIKit/UIKit.h>

    @interface CommonPageControl : UIPageControl
    {
        UIImage *activeImage;
        UIImage *inactiveImage;
    }
    @end
     
     
    #import "CommonPageControl.h"

    @implementation CommonPageControl

    - (id)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // Initialization code
        }
        return self;
    }

    -(void)updateDots{

        for(int i=0;i<[self.subviews count];i++){
            
            if([(UIView *)[self.subviews objectAtIndex:i] isKindOfClass:[UIView class]]){//目前pageControl控件小点是一个view
                UIView *dot=[self.subviews objectAtIndex:i];
                if(i==self.currentPage){
                    dot.backgroundColor=[UIColor whiteColor];

                }
                else{
                    dot.backgroundColor = [UIColor colorWithRed:0/255.0 green:0/255.0 blue:0/255.0 alpha:0.1];


                }
            }

        }

    }

    //重写基类方法
    -(void)setCurrentPage:(NSInteger)currentPage{

        [super setCurrentPage:currentPage];
        [self updateDots];
        
    }
    @end
     
    调用:
        CGRect rect;
        rect.origin.x = myScrollView.frame.origin.x;
        rect.origin.y = self.frame.size.height-20;
        rect.size.width = myScrollView.frame.size.width;
        rect.size.height = 20;
        myPagecontrol = [[CommonPageControl alloc] initWithFrame:rect];
        myPagecontrol.userInteractionEnabled=NO;
  • 相关阅读:
    ibernate学习笔记5---实体类或属性名与数据库关键字冲突、hql命名参数、hql实现通用分页
    dom4j API使用简介
    oracle创建表空间、创建用户、授权、夺权、删除用户、删除表空间
    一、导入、导出远程Oracle数据库
    JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
    实现JavaScript中继承的三种方式
    JavaScript 高级篇之闭包、模拟类,继承(五)
    IE JS编程需注意的内存释放问题
    浅谈javascript中的作用域
    LeetCode----Path Sum
  • 原文地址:https://www.cnblogs.com/liangjialun219/p/3922482.html
Copyright © 2020-2023  润新知