天天看點

UIPageControl基本用法

轉載整理

pageControl = [ [ [ UIPageControl alloc ] init ] autorelease ] ; pageControl . numberOfPages = pageNum ; pageControl . pageIndicatorTintColor = [ UIColor darkGrayColor ] ; pageControl . currentPageIndicatorTintColor = [ UIColor whiteColor ] ; pageControl . frame = CGRectMake ( 0 , CGRectGetMaxY ( self . bounds ) - 30 ,                                CGRectGetWidth ( self . bounds ) , 20 ) ; [ self addSubview :pageControl ] ; huv

圖檔更換

1. 改變:原來PageControl的subview是UIImageView,現在變成了UIView.

2. 解決辦法:重畫。

3. 代碼:(因為我的PageControl通過IB初始化的,是以下面的代碼中沒有初始化部分。你可以自行初始化)

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 // //  CustomPageControl.m //  Sampling // //  Created by Megan on 10/18/13. //  Copyright (c) 2013. All rights reserved. //   #import "CustomPageControl.h"   @implementation CustomPageControl   - ( void )setCurrentPage:(NSInteger)currentPage {      [super setCurrentPage:currentPage];      [self setNeedsDisplay];    }   - ( void )setNumberOfPages:(NSInteger)numberOfPages {      [super setNumberOfPages:numberOfPages];             [self setNeedsDisplay];       }   - ( void )drawRect:(CGRect)iRect {      int i;      CGRect rect;      UIImage *image;            iRect = self.bounds;            if (self.opaque) {          [self.backgroundColor set];          UIRectFill(iRect);      }            UIImage *_activeImage = [UIImage imageNamed:@ "INDICATOR-activated.png" ];      UIImage *_inactiveImage = [UIImage imageNamed:@ "INDICATOR-deactivated.png" ];      CGFloat _kSpacing = 5.0f;            if (self.hidesForSinglePage && self.numberOfPages == 1) {          return ;      }            rect.size.height = _activeImage.size.height;      rect.size.width = self.numberOfPages * _activeImage.size.width + (self.numberOfPages - 1) * _kSpacing;      rect.origin.x = floorf((iRect.size.width - rect.size.width) / 2.0);      rect.origin.y = floorf((iRect.size.height - rect.size.height) / 2.0);      rect.size.width = _activeImage.size.width;            for (i = 0; i < self.numberOfPages; ++i) {          image = (i == self.currentPage) ? _activeImage : _inactiveImage;          [image drawInRect:rect];          rect.origin.x += _activeImage.size.width + _kSpacing;      } }   @end