ios8上的地图旋转速度非常慢

问题描述 投票:7回答:1

[我在一个旧项目的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秒

)。似乎只与mapview相关,其他视图/ VC旋转也很好。在ios7下,无论是否注释该行,旋转速度都很快。

为什么?为什么只影响mapview?

Edit:

显然,autoresizingmask是错误的。如果在viewDidLoad中将其值设置为none并在willRotate中手动更改帧,它将快速运行。
ios ios7 ios8 mkmapview autoresizingmask
1个回答
1
投票
当应用程序从后台返回时,我遇到了同样的问题。它冻结了几秒钟,然后又重新工作了。我使用了没有自动布局的.xib文件。

当我更新.xib文件并添加了Autolayout选项时,问题消失了。我想出了这个主意,因为您写道自动调整大小是解决方案中的问题。

© www.soinside.com 2019 - 2024. All rights reserved.