您的位置:首页 > 产品设计 > UI/UE

自定义UIPageControl小点的颜色

2015-10-16 10:34 375 查看
方法一:继承UIPageController类,重写其方法。

首先导入两个封装好的文件,在这里我的文件叫做BluePageControl.h和BluePageControl.m,继承于UIPageControl,重写了以下的方法。

BluePageControl.h:

#import ;

@interface QBluePageControl : UIPageControl

{

UIImage *_activeImage;(蓝色圆点图片)

UIImage *_inactiveImage;(白色圆点图片)

}

@end

BluePageControl.m:

#import"QBluePageControl.h"

@implementation QBluePageControl

- (id)initWithFrame:(CGRect)frame

{

self = [superinitWithFrame:frame];

_activeImage = [UIImageimageNamed:@"channel_pagecontrol_bluedot.png"];

_inactiveImage = [UIImageimageNamed:@"channel_pagecontrol_whitedot.png"];

return self;

}

- (void)updateDots

{

for (inti
= 0; i< [self.subviewscount];
i++) {

UIImageView* dot = [self.subviewsobjectAtIndex:i];

if (i == self.currentPage){

dot.image = _activeImage;

}

else

dot.image = _inactiveImage;

}

}

- (void)setCurrentPage:(NSInteger)currentPage

{

[supersetCurrentPage:currentPage];

[selfupdateDots];

}

@end

使用的时候在主程序中#import "QBluePageControl.h"

创建:_pageControl = [[QBluePageControlalloc] initWithFrame];并指定_pageControl的numberOfPages和currentPage就可以实现了。

UIPageControl* pc = [[[QBluePageControlalloc alloc] initWithFrame:CGRectMake(100, 400,
120, 27)] autorelease];

pc.numberOfPages = 3;

pc.currentPage = 0;

方法二:

-(void)viewDidLoad{

[super viewDidLoad];

UIPageControl* pc = [[[UIPageControl alloc] initWithFrame:CGRectMake(100, 400, 120, 27)] autorelease];

pc.numberOfPages = 3;

pc.currentPage = 0;

[pc addTarget:self action:@selector(pageChanged:) forControlEvents:UIControlEventValueChanged];

[self.view addSubview:pc];

[self pageChanged:pc];

}

-(void)pageChanged:(UIPageControl*)pc{

NSArray *subViews = pc.subviews;

for (int i = 0; i < [subViews count]; i++) {

UIView* subView = [subViews objectAtIndex:i];

if ([NSStringFromClass([subView class]) isEqualToString:NSStringFromClass([UIImageView class])]) {

((UIImageView*)subView).image = (pc.currentPage == i ? [UIImage imageNamed:@"RedPoint.png"] : [UIImage imageNamed:@"BluePoint.png"]);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: