首页 > 其他 > 详细

自定义UIPageControl

时间:2015-06-24 09:16:27      阅读:268      评论:0      收藏:0      [点我收藏+]

iphone的UIPageControl控件可以显示用户huan‘dong滑动到的页码。但是里面的小点的颜色时默认的白色。如果背景也是白色的hu话,你就悲剧了。于是乎上网找了一些资料,找到了改变UIPageControl空间xiao‘da小点颜色的方法。解决fang‘r方法如下:

技术分享
GrayPageControl.h:


#import <Foundation/Foundation.h>



@interface GrayPageControl : UIPageControl

{

    UIImage* activeImage;

    UIImage* inactiveImage;

}


@end



GrayPageControl.m:
#import "GrayPageControl.h"



@implementation GrayPageControl

-(id) initWithFrame:(CGRect)frame

{

self = [super initWithFrame:frame];


activeImage = [[UIImage imageNamed:@"RedPoint.png"] retain];

    inactiveImage = [[UIImage imageNamed:@"BluePoint.png"] retain];


    return self;

}


-(void) updateDots

{

    for (int i=0; i<[self.subviews count]; i++) {

        UIImageView* dot = [self.subviews objectAtIndex:i];

        CGSize size;

        size.height = 7;     //自定义圆点的大小

      size.width = 7;      //自定义圆点的大小
      [dot setFrame:CGRectMake(dot.frame.origin.x, dot.frame.origin.y, size.width, size.width)];
      if (i==self.currentPage)dot.image=activeImage;

      else dot.image=inactiveImage;

    }

}

-(void) setCurrentPage:(NSInteger)page

{

    [super setCurrentPage:page];

    [self updateDots];

}

@end
技术分享

试用该类的方法是:
pageControl = [[GrayPageControl alloc] initWithFrame:CGRectMake(0.0, 460.0 - (96 + 48) / 2, 320.0, 48.0 /2)];

pageControl.userInteractionEnabled = NO;

 

注意:小圆点颜色改变时要调用pageControl中的setCurrentPage方法。
本人理解的思路:
首先GrayPageControl重载了UIPageControl的-(id) initWithFrame:(CGRect)frame方法。初始化了两个图片,即我们想要改变的小点点的颜色(一个是当前页的颜色,一个是非当前页的颜色)。
之后重载了UIPageControl的-(void) setCurrentPage:(NSInteger)page方法(此方法设置当前页的小点点的颜色)。注意在此处我们显式调用了-(void) updateDots方法,此方法中首先便利UIPageControl的子类,即每个小点点的UIImageView,我们设置每个小点点的imageView就可以了。

自定义UIPageControl

原文:http://www.cnblogs.com/worldtraveler/p/4596757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!