Vorrei spostare l'etichetta Legale sul lato destro. Su iOS 6 e 7 la soluzione sotto funzionava bene, tuttavia su iOS 8.3 sembra non funzionare.Riposizionare l'etichetta legale (MKAttributionLabel)
ottengo l'etichetta, poi con un timer (0,1 sec) in viewDidLayoutSubviews
Io chiamo questo metodo:
-(void)moveLegalLabel
{
UIView * legalLink = [self attributionView];
legalLink.frame = CGRectMake(self.mapView.frame.size.width - legalLink.frame.size.width - 10, self.mapView.frame.size.height - legalLink.frame.size.height - 10 , legalLink.frame.size.width, legalLink.frame.size.height);
legalLink.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;
}
che funziona bene per la rotazione, ecc Ma appena ho scorrere la mappa, la l'etichetta salta indietro a sinistra. Ho provato a chiamare questo metodo nello regionDidChangeAnimated
ma l'etichetta salta indietro prima a sinistra e poi a destra, è davvero fastidioso ...
Come potrei costringere quella stupida etichetta a rimanere sul lato destro?
soluzione come suggerito da Christian:
- sottoclasse il MKMapView
- spostare il codice
moveLegalLabel
ci - chiamano in
layoutSubviews
-(void)layoutSubviews { [super layoutSubviews]; [self moveLegalLabel]; }
Perché mai l'hai fatto con un ritardo di 0,1? –
@ChristianSchnorr Perché devo conservare l'etichetta a destra anche dopo la rotazione. Il problema principale sono le riposizionazioni delle mappe che etichettano dopo ogni cambiamento di regione ... – Templar
Allora, che ne dici di entrare dopo la rotazione (ma senza un ritardo!) E annullare qualsiasi cosa la mappa abbia fatto? –