È possibile raggiungere questo obiettivo facendo le seguenti operazioni:
1- Creare una classe personalizzata che eredita da UIPageControl.
2- Assegnare questa classe al UIPageControl richiesto che si desidera modificare i suoi punti.
3- Inserire il seguente codice all'interno della classe UIPageControl personalizzata.
Mettere questo nel file 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];
}
Mettere questo nel customClass.h il file
{
UIImage* activeImage;
UIImage* inactiveImage;
}
@property(nonatomic, retain) UIImage* activeImage;
@property(nonatomic, retain) UIImage* inactiveImage;
5- Basta impostare la pagina corrente della vostra UIPageControl nella classe che si inserire il controllo pagina al suo interno utilizzando la seguente riga:
[self.pageControl setCurrentPage:number];
Ricordarsi di impostare la pagina corrente nel metodo viewDidLoad() nella vista che UIPageControl è al suo interno.
Quando viene caricata la vista, le immagini di UIPageControl verranno impostate.
[** HHPageControl **] (https://github.com/hemangshah/HHPageController) – Hemang
Questo non è un problema dell'altra domanda: qui vogliamo sapere come modificare i punti; il "dupe" collegato vuole solo cambiare il colore. La mia soluzione è allegata al seguente di Aragon. –
Poiché questo "dupe" non accetta più le risposte, commenterò un'altra soluzione. Se vuoi solo cambiare la dimensione dei punti puoi usare pagecontrol.transform = CGAffineTransformMakeScale (2, 2); I punti – mvandillen