iPhone開發(fā)中UIPageControl實現(xiàn)自定義按鈕教程
iPhone開發(fā)中UIPageControl實現(xiàn)自定義按鈕是本文要介紹的內(nèi)容,主要講解的是來實現(xiàn)自定義按鈕,有時候UIPageControl需要用到白色的背景,那么會導(dǎo)致上面的點按鈕看不見或不清楚,我們可以通過繼承該類重寫函數(shù)來更換點按鈕的圖片現(xiàn)實。
實現(xiàn)思路如下.
新建類繼承UIPageControl :
- @interface MyPageControl : UIPageControl
 - {
 - UIImage *imagePageStateNormal;
 - UIImage *imagePageStateHighlighted;
 - }
 - - (id)initWithFrame:(CGRect)frame;
 - @property (nonatomic, retain) UIImage *imagePageStateNormal;
 - @property (nonatomic, retain) UIImage *imagePageStateHighlighted;
 - @end
 
聲明了初始化該類的函數(shù)
用了兩個UIImage保存兩張圖片, 大家知道的, UIPageCotrol的按鈕分為兩態(tài), 一個是正常, 一個是高亮
接下來實現(xiàn)該類以及重寫父類方法:
- @interface MyPageControl(private) // 聲明一個私有方法, 該方法不允許對象直接使用
 - - (void)updateDots;
 - @end
 - @implementation MyPageControl // 實現(xiàn)部分
 - @synthesize imagePageStateNormal;
 - @synthesize imagePageStateHighlighted;
 - - (id)initWithFrame:(CGRect)frame { // 初始化
 - self = [super initWithFrame:frame];
 - return self;
 - }
 - - (void)setImagePageStateNormal:(UIImage *)image { // 設(shè)置正常狀態(tài)點按鈕的圖片
 - [imagePageStateHighlighted release];
 - imagePageStateHighlighted = [image retain];
 - [self updateDots];
 - }
 - - (void)setImagePageStateHighlighted:(UIImage *)image { // 設(shè)置高亮狀態(tài)點按鈕圖片
 - [imagePageStateNormal release];
 - imagePageStateNormal = [image retain];
 - [self updateDots];
 - }
 - - (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { // 點擊事件
 - [super endTrackingWithTouch:touch withEvent:event];
 - [self updateDots];
 - }
 - - (void)updateDots { // 更新顯示所有的點按鈕
 - if (imagePageStateNormal || imagePageStateHighlighted)
 - {
 - NSArray *subview = self.subviews; // 獲取所有子視圖
 - for (NSInteger i = 0; i < [subview count]; i++)
 - {
 - UIImageView *dot = [subview objectAtIndex:i]; // 以下不解釋, 看了基本明白
 - dot.image = self.currentPage == i ? imagePageStateNormal : imagePageStateHighlighted;
 - }
 - }
 - }
 - - (void)dealloc { // 釋放內(nèi)存
 - [imagePageStateNormal release], imagePageStateNormal = nil;
 - [imagePageStateHighlighted release], imagePageStateHighlighted = nil;
 - [super dealloc];
 - }
 - @end
 
OK, 在添加處加入以下來實例化該對象代碼:
- MyPageControl *pageControl = [[MyPageControl alloc] initWithFrame:CGRectMake(0,0, 200, 30)];
 - pageControl.backgroundColor = [UIColor clearColor];
 - pageControl.numberOfPages = 5;
 - pageControl.currentPage = 0;
 - [pageControl setImagePageStateNormal:[UIImage imageNamed:@"pageControlStateNormal.png"]];
 - [pageControl setImagePageStateHighlighted:[UIImage imageNamed:@"pageControlStateHighlighted.png"]];
 - [self.view addSubview:pageControl];
 - [pageControl release];
 
小結(jié):UIPageControl實現(xiàn)自定義按鈕教程的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)對你能有所幫助!















 
 
 




 
 
 
 