【问题标题】:iOS8 MKMapView Framebuffer error during rotation when autoresize is applied应用自动调整大小时,iOS8 MKMapView Framebuffer 在旋转期间出错
【发布时间】:2014-11-23 13:30:33
【问题描述】:
#import "AppDelegate.h"
#import <MapKit/MapKit.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:   (NSDictionary *)launchOptions
{
    [self setWindow:[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]];
    [self.window makeKeyAndVisible];

    UIViewController *vc = [[UIViewController alloc] init];
    self.window.rootViewController = vc;
    vc.view.autoresizingMask = UIViewAutoresizingFlexibleWidth |    UIViewAutoresizingFlexibleHeight;

    MKMapView *map = [[MKMapView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    map.autoresizingMask = UIViewAutoresizingFlexibleHeight;
    [vc.view addSubview:map];

    return YES;
}

@end

要查看问题,请运行上述代码并旋转设备。 您将遇到旋转动画的明显延迟。

如果您连接 iOS8 iPad 并运行模拟器, 您将收到以下警告:

崩溃! 0x15dd7980
错误 /SourceCache/VectorKit/VectorKit-992.16/GeoGL/GeoGL/GLCoreContext.cpp 1237:帧缓冲区不完整,附件不完整

有人知道如何解决这个问题吗?

【问题讨论】:

  • 我遇到了同样的问题和错误。转换为使用 AutoLayout 以解决它。如果有人就此向 Apple 提交错误,那就太好了。
  • @AmitP 您可以在此处向 Apple 提交错误报告:developer.apple.com/bug-reporting 另外,请在此处复制您的错误报告,以便开发人员社区的其他人可以看到:openradar.appspot.com

标签: ios8 mapkit framebuffer autoresize


【解决方案1】:

我也遇到过这种情况,并且发现它似乎只发生在选择调整大小选项的情况下(即调整高度和宽度与视图调整大小)。我没有使用自动布局。

如果我只是将 MKMapView 添加到视图中,没问题,但如果我选择调整大小,它会生成与上图相同的消息。

(对不起,这是评论而不是答案,但我无法在 1 票上添加 cmets,我认为这可能有助于诊断问题)

更新 - 我在我的一台测试设备上安装了 8.1 Beta,我没有遇到这个问题。很有可能这是一个被 8.1 掩盖的问题 :)

【讨论】:

  • 更新 - 我已经在我的一台测试设备上安装了 8.1 Beta,我没有遇到这个问题。很有可能这是一个被 8.1 掩盖的问题 :)
  • 我在 8.2 上看到了这个,所以问题仍然存在。
【解决方案2】:

我最近遇到了这个问题,并且在代码中添加了约束,直到我将应用程序更新为 iPhone 6/ 6+ 优化,在这种情况下,我仍然可以在控制台日志中看到错误并且它是亮粉色.

最好的解决办法是直接在storyboard上添加MKMapView,所有的消息和奇怪的颜色行为都解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多