自定义UIPageController

方法一:继承UIPageController类,重写其方法。

首先导入两个封装好的文件,在这里我的文件叫做BluePageControl.hBluePageControl.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 = [[QBluePageControlallocinitWithFrame];并指定_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"]);

        }

        

    }

 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值