I'd want to move the Legal label to the right side. On iOS 6 and 7 the below solution was working fine, however on iOS 8.3 it seems to not work.
I get the label, then with a timer (0.1 sec) in viewDidLayoutSubviews
I call this method :
-(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;
}
which works nicely for rotation, etc.
But as soon as I scroll the map, the label jumps back to the left.
Tried to call this method in the regionDidChangeAnimated
but the label jumps back first to the left then to right, it's really annoying...
How could I force that stupid label to stay on the right side ?
Solution as suggested by Christian :
- Subclass the MKMapView
- Move the
moveLegalLabel
code there - Call it in
layoutSubviews
-(void)layoutSubviews
{
[super layoutSubviews];
[self moveLegalLabel];
}
regionDidChangeAnimated
works randomly. Sometimes it keeps the label on right, sometimes not ... – Freshwater-layoutSubviews
. – DoublesmoveLegalLabel
inviewDidLayoutSubviews
should be called after each view's ownlayoutSubviews
... Thank you really much. – Freshwater