1. 改變:原來PageControl的subview是UIImageView,現在變成了UIView.
2. 解決辦法:重畫。
3. 代碼:(因為我的PageControl通過IB初始化的,所以下面的代碼中沒有初始化部分。你可以自行初始化)
//// 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