Вращение карты ужасно медленное на ios8

Я получил следующий код в ВК в старом проекте (без раскадровки, чистый код):

- (void)viewDidLoad {
    [super viewDidLoad];
    self.mapView = [[MKMapView alloc] initWithFrame:CGRectInset(self.view.frame, 10, 10) ];
    [self.view addSubview:self.mapView];
    self.view.backgroundColor = [UIColor redColor];
    self.mapView.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
    self.view.translatesAutoresizingMaskIntoConstraints = NO; // <--- this line
}

Если я прокомментирую последнюю строку, поворот из книжной в альбомную или наоборот составляет около 3 секунд под ios8 !! Кроме того, иногда в случайное время появляются ошибки Невозможно выделить хранилище буфера рендеринга!.

Если я не прокомментирую это, это произойдет почти мгновенно (0,7 секунды). Кажется, это связано только с картами, другие виды / VC прекрасно вращаются.

Под ios7 вращение происходит быстро в любом случае, независимо от того, прокомментирована эта строка или нет.

Почему ? И почему затронут только вид карты?

Редактировать: очевидно, что маска автоматического изменения размера неверна. Если в viewDidLoad поставить ему значение none и вручную изменить кадр в willRotate, работает быстро.


person Templar    schedule 19.11.2014    source источник


Ответы (1)


У меня была такая же проблема, когда приложение вернулось из фона. Он замер на несколько секунд, а затем снова заработал. Я использовал файл .xib без Autolayout.

Когда я обновил файл .xib и добавил параметр Autolayout, проблема исчезла. Я придумал эту идею, потому что вы написали, что автоматическое изменение размера было проблемой в вашем решении.

person Paul Spiesberger    schedule 27.01.2015
comment
да, вы правы, если мы используем Autolayout, тогда проблема исчезнет, ​​но без Autolayout мы можем решить эту проблему? - person Hardik Kardani; 06.05.2015