Я хочу переместить ярлык Legal вправо. На iOS 6 и 7 решение ниже работало нормально, однако на iOS 8.3 оно, похоже, не работает.
Я получаю метку, затем с таймером (0,1 с) в viewDidLayoutSubviews
Я вызываю этот метод:
-(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;
}
который отлично работает для вращения и т.д.
Но как только я прокручу карту, метка вернется влево.
Попробовал вызвать этот метод в regionDidChangeAnimated
, но метка вернется сначала влево, затем вправо, это действительно раздражает...
Как я могу заставить эту глупую ярлык остаться с правой стороны?
Решение, предложенное Кристианом:
- Подкласс MKMapView
- Переместите код
moveLegalLabel
там - Назовите его
layoutSubviews
-(void)layoutSubviews
{
[super layoutSubviews];
[self moveLegalLabel];
}