地图旋转在ios8上非常慢

我在一个旧项目的VC(无故事板,纯代码)中获得了以下代码:

- (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 } 

如果我评论最后一行,从纵向到横向或者其他方式的旋转是在ios8下大约3秒钟 ! 此外,偶尔在随机时间无法分配渲染缓冲区存储! 出现错误。

如果我不评论,几乎是瞬间的( 0.7秒 )。 看来只是和mapviews有关,其他视图/ VC才能正常旋转。

在ios7下,在任何情况下,旋转都是快速的。

为什么? 为什么只有mapview受到影响?

编辑:显然,autoresizingmask是错误的。 如果在viewDidLoad我将其值设置为none,并手动更改在willRotate中的框架,它工作得很快。

当应用程序从后台返回时,我遇到了同样的问题。 它冻结了几秒钟,然后再次工作。 我没有Autolayout使用.xib文件。 当我更新.xib文件并添加Autolayout选项时,问题消失了。 我想出了这个想法,因为你写了autoresizing是你的解决scheme中的问题。 也许这也会帮助别人

欢呼保罗