自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開(kāi)發(fā)中UIPageControl實(shí)現(xiàn)自定義按鈕教程

移動(dòng)開(kāi)發(fā) iOS
iPhone開(kāi)發(fā)中UIPageControl實(shí)現(xiàn)自定義按鈕是本文要介紹的內(nèi)容,主要講解的是來(lái)實(shí)現(xiàn)自定義按鈕,有時(shí)候UIPageControl需要用到白色的背景,那么會(huì)導(dǎo)致上面的點(diǎn)按鈕看不見(jiàn)或不清楚,

iPhone開(kāi)發(fā)UIPageControl實(shí)現(xiàn)自定義按鈕是本文要介紹的內(nèi)容,主要講解的是來(lái)實(shí)現(xiàn)自定義按鈕,有時(shí)候UIPageControl需要用到白色的背景,那么會(huì)導(dǎo)致上面的點(diǎn)按鈕看不見(jiàn)或不清楚,我們可以通過(guò)繼承該類(lèi)重寫(xiě)函數(shù)來(lái)更換點(diǎn)按鈕的圖片現(xiàn)實(shí)。

實(shí)現(xiàn)思路如下.

新建類(lèi)繼承UIPageControl :

  1.  @interface MyPageControl : UIPageControl   
  2. {   
  3.     UIImage *imagePageStateNormal;   
  4.     UIImage *imagePageStateHighlighted;   
  5. }   
  6. - (id)initWithFrame:(CGRect)frame;   
  7. @property (nonatomic, retain) UIImage *imagePageStateNormal;   
  8. @property (nonatomic, retain) UIImage *imagePageStateHighlighted;   
  9. @end  

聲明了初始化該類(lèi)的函數(shù)

用了兩個(gè)UIImage保存兩張圖片, 大家知道的, UIPageCotrol的按鈕分為兩態(tài), 一個(gè)是正常, 一個(gè)是高亮

接下來(lái)實(shí)現(xiàn)該類(lèi)以及重寫(xiě)父類(lèi)方法:

  1.  @interface MyPageControl(private)  // 聲明一個(gè)私有方法, 該方法不允許對(duì)象直接使用   
  2.  
  3. - (void)updateDots;   
  4. @end   
  5. @implementation MyPageControl  // 實(shí)現(xiàn)部分   
  6. @synthesize imagePageStateNormal;   
  7. @synthesize imagePageStateHighlighted;   
  8. - (id)initWithFrame:(CGRect)frame { // 初始化   
  9.     self = [super initWithFrame:frame];   
  10.     return self;   
  11. }   
  12. - (void)setImagePageStateNormal:(UIImage *)image {  // 設(shè)置正常狀態(tài)點(diǎn)按鈕的圖片   
  13.     [imagePageStateHighlighted release];   
  14.     imagePageStateHighlighted = [image retain];   
  15.     [self updateDots];   
  16. }   
  17. - (void)setImagePageStateHighlighted:(UIImage *)image { // 設(shè)置高亮狀態(tài)點(diǎn)按鈕圖片   
  18.     [imagePageStateNormal release];   
  19.     imagePageStateNormal = [image retain];   
  20.     [self updateDots];   
  21. }   
  22. - (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event { // 點(diǎn)擊事件   
  23.     [super endTrackingWithTouch:touch withEvent:event];   
  24.     [self updateDots];   
  25. }   
  26. - (void)updateDots { // 更新顯示所有的點(diǎn)按鈕   
  27.     if (imagePageStateNormal || imagePageStateHighlighted)   
  28.     {   
  29.         NSArray *subview = self.subviews;  // 獲取所有子視圖   
  30.         for (NSInteger i = 0; i < [subview count]; i++)   
  31.         {   
  32.             UIImageView *dot = [subview objectAtIndex:i];  // 以下不解釋, 看了基本明白   
  33.             dot.image = self.currentPage == i ? imagePageStateNormal : imagePageStateHighlighted;   
  34.         }   
  35.     }   
  36. }   
  37. - (void)dealloc { // 釋放內(nèi)存   
  38.     [imagePageStateNormal release], imagePageStateNormal = nil;   
  39.     [imagePageStateHighlighted release], imagePageStateHighlighted = nil;   
  40.     [super dealloc];   
  41. }   
  42. @end  

OK, 在添加處加入以下來(lái)實(shí)例化該對(duì)象代碼:

  1. MyPageControl *pageControl = [[MyPageControl alloc] initWithFrame:CGRectMake(0,0, 200, 30)];   
  2. pageControl.backgroundColor = [UIColor clearColor];   
  3. pageControl.numberOfPages = 5;   
  4. pageControl.currentPage = 0;   
  5. [pageControl setImagePageStateNormal:[UIImage imageNamed:@"pageControlStateNormal.png"]];   
  6. [pageControl setImagePageStateHighlighted:[UIImage imageNamed:@"pageControlStateHighlighted.png"]];   
  7. [self.view addSubview:pageControl];   
  8. [pageControl release];  

小結(jié):UIPageControl實(shí)現(xiàn)自定義按鈕教程的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)對(duì)你能有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-11 11:51:07

iPhone鍵盤(pán)

2011-08-18 17:32:55

iPhone開(kāi)發(fā)Table Cell

2011-08-18 09:52:13

iPhone SDKUIPageContr

2011-08-18 09:44:33

iPhone SDK儀表控件UIDialView

2009-06-08 20:13:36

Eclipse自定義控

2021-11-23 15:06:42

Kubernetes 運(yùn)維開(kāi)源

2013-12-26 17:08:36

Android開(kāi)發(fā)Android應(yīng)用自定義Adapter顯

2024-09-11 14:46:48

C#旋轉(zhuǎn)按鈕

2010-04-29 17:14:47

組策略自定義安裝

2009-09-07 22:00:15

LINQ自定義

2012-05-25 12:57:31

Windows Pho

2012-05-18 10:52:20

TitaniumAndroid模塊自定義View模塊

2011-06-15 09:24:36

Qt Widget Model

2024-12-27 15:37:23

2013-12-27 14:10:36

Android開(kāi)發(fā)Android應(yīng)用Transform

2009-08-05 17:15:27

C#自定義按鈕

2009-08-05 17:03:37

C#自定義控件

2011-08-02 11:17:13

iOS開(kāi)發(fā) View

2022-10-25 15:12:24

自定義組件鴻蒙

2009-06-24 15:13:36

自定義JSF組件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)