自定义UIPageControl

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就可以了。

时间: 2024-10-11 07:12:11

自定义UIPageControl的相关文章

自定义UIPageControl圆点的图片

iphone的UIPageControl控件可以显示用户huan'dong滑动到的页码.但是里面的小点的颜色时默认的白色.如果背景也是白色的hu话,你就悲剧了.于是乎上网找了一些资料,找到了改变UIPageControl空间xiao'da小点颜色的方法.解决fang'r方法如下: GrayPageControl.h: #import <Foundation/Foundation.h> @interface GrayPageControl : UIPageControl { UIImage* a

【iOS之轮播视图、自定义UIPageControl】

基于UISrollView实现的无限循环轮播视图. 实现的思路:使用三个UIImageView不断循环利用,始终将最中间一个View显示在UIScrolView的contentSize上,每次滚动后,再重新调整UIScrollView的contentOffset让中间的UIImageView显示 github链接

Coding源码学习第二部分(FunctionIntroManager.m)

接上篇.上篇有一个细节忘了写,在Coding_iOS-Info.plist 里面添加了一个key 是 Status bar is initially hidden  Value 是 YES,在application 启动的时候隐藏状态栏,然后在 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 ...... 4 /

IOS工作笔记(四)

说明:记录下学习IOS的一些琐碎,有些在现在看起来很简单幼稚,不过权当学习足迹吧! 1.ios7中,对状态栏的调整是在控制器中进行的. 1 //设置状态栏为白色 2 -(UIStatusBarStyle)preferredStatusBarStyle{ 3 return UIStatusBarStyleLightContent; 4 } 5 //隐藏状态栏 6 -(BOOL)prefersStatusBarHidden{ 7 return YES; 8 } 2.给UIImageView或UILa

UIScrollView和UIPageControl

UIScrollView和UIPageControl 一般配合使用 //创建一个滑动/滚动的视图,大小和当前视图大小一样(可以自定义大小)    UIScrollView *scrollView=[[UIScrollView alloc] initWithFrame:self.view.bounds];    //设置显示内容区域的大小,宽度是当前视图的6倍(可以自定义大小),    scrollView.contentSize=CGSizeMake(self.view.frame.size.w

iOS-设置UIPageControl 显示图片

UIPageControl 的默认样式是几个小圆点,系统没有提供属性供我们自定义这几个小圆点的样式,不过我们依然可以使用KVC来自定义PageControl的显示样式 UIPageControl *pageControl = [[UIPageControl alloc] init]; [pageControl setValue:[UIImage imageNamed:@"image1"] forKeyPath:@"_pageImage"]; [pageControl

UiPaged的自定义

我们在写轮播图片时使用系统的控件往往无法满足项目需求,因此我们就开始自定义控件了. 以下是UIPageControl的自定义: #import <UIKit/UIKit.h> @interface UPage : UIPageControl { UIImage *_activeImage;//(当前页面所表示图片) UIImage *_inactiveImage;//(当前界面外的图片) } @property(nonatomic,retain) UIImage *activeImage,*i

Objective-C UI之自定义轮播图控件

下面我们自定义一个轮播图类ImageLoop继承于UIView,类ImageLoop中包含一个UIScrollView和UIPageControl,其中定义三个属性: pageControll,position,currentPage可以自定义pageControl样式,也可以使用position控制播放方向,或者设置从下标为currentPage的图片开始播放 下面是ImageLoop的接口文件: #import <UIKit/UIKit.h> typedef enum{Left,Right

UI基础之UITableView案例团购----自定义cell利用xib

一:模型数据: #import <Foundation/Foundation.h> @interface LLGroup : NSObject /** * icon */ @property (nonatomic, copy) NSString *icon; /** * title */ @property (nonatomic, copy) NSString *title; /** * buyCount */ @property (nonatomic, copy) NSString *buy