我見過的應用程序(例如meebo)在UIPageControls上具有不同的指示符,而不是默認的白色圓圈。如何更改UIPageControl點
有沒有簡單的方法來做到這一點?我已閱讀UIPageControls的文檔,似乎沒有方法來替換圖像。
我見過的應用程序(例如meebo)在UIPageControls上具有不同的指示符,而不是默認的白色圓圈。如何更改UIPageControl點
有沒有簡單的方法來做到這一點?我已閱讀UIPageControls的文檔,似乎沒有方法來替換圖像。
沒有公共API來更改圖像。你可以看看this blog post,它描述了一種自定義UIPageControl的方法。
您不能更改點的顏色,但可以嘗試Custom Page Control。你可能會得到你的要求。
以及一些鏈接#1 Stack Link1 & Stack Link2
您可以通過以下步驟實現:
1-創建從UIPageControl繼承的自定義類。
2-將此類分配給您想要更改其點的所需UIPageControl。
3-將以下代碼放入您的自定義UIPageControl類中。
將這個在customClass.m文件:
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if(self)
{
activeImage = [UIImage imageNamed:@"active_dot.png"];
inactiveImage = [UIImage imageNamed:@"inactive_dot.png"];
}
return self;
}
-(void)updateDots
{
for (int i = 0; i < [self.subviews count]; i++)
{
UIImageView* dot = [self.subviews objectAtIndex:i];
dot.frame = CGRectMake(dot.frame.origin.x, dot.frame.origin.y, 14, 14.5);
if (i == self.currentPage)
dot.image = activeImage;
else
dot.image = inactiveImage;
}
}
-(void)setCurrentPage:(NSInteger)page
{
[super setCurrentPage:page];
[self updateDots];
}
在customClass.h把這個文件
{
UIImage* activeImage;
UIImage* inactiveImage;
}
@property(nonatomic, retain) UIImage* activeImage;
@property(nonatomic, retain) UIImage* inactiveImage;
5-只需設置你的UIPageControl的當前頁面中的類,您把頁面控件放在裏面用下面一行:
[self.pageControl setCurrentPage:number];
記得要設置當前頁面在UIPageControl視圖中的viewDidLoad()方法中。
當視圖加載的UIPageControl圖像將被設置。
點是iOS7中的UIView對象,所以需要更新代碼。 – Centurion 2013-10-07 15:40:10
我已更新Aragon的updateDots:方法的代碼以支持iOS 7.請參閱下面的答案。 – 2014-03-20 14:04:56
詛咒,答案是封閉的,儘管我喜歡這個解決方案比鏈接頁面上的這個解決方案更好。簡單地說,PageControl的子視圖是UIViews,所以我向它們中注入了一個UIImageView: – 2014-03-20 14:06:11
[** HHPageControl **](https://github.com/hemangshah/HHPageController) – Hemang 2013-09-07 04:56:55
這不是另一個問題的謎團:在這裏我們想知道如何改變點;鏈接的「笨蛋」只是想改變顏色。我的解決方案附加到阿拉貢的下面。 – 2014-03-20 14:07:51
既然這個「笨蛋」不接受答案了,我會評論另一種解決方案。如果你只是想改變點的大小,你可以使用pagecontrol.transform = CGAffineTransformMakeScale(2,2); – mvandillen 2017-04-05 13:38:05