iOS8 MKMapView Framebuffer error during rotation when autoresize is applied

纵饮孤独 提交于 2019-12-20 14:43:32

问题


#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

To see the problem, run the above code and just rotate the device. You will experience a significant delay for the rotation animation to take place.

If you connect an iOS8 iPad and run the simulator, you will receive these warnings:

Crash! 0x15dd7980
ERROR /SourceCache/VectorKit/VectorKit-992.16/GeoGL/GeoGL/GLCoreContext.cpp 1237: Framebuffer incomplete, incomplete attachment

Anyone know how to fix this problem?


回答1:


I am also experiencing this, and have found that it only seems to occur with the resizing options selected (i.e. resize height and width with as view resizes). I'm not using Auto Layout.

If I just add a MKMapView to a view, it's no problem, but if I select the resizing, it generates the same messages as shown above.

(Sorry that this is a comment not an answer, but I can't add comments on 1 vote, and I thought this may help diagnose the issue)

UPDATE - I have installed 8.1 Beta on one of my test devices, and I am NOT experiencing this issue. There is a good chance this is an issue that's being swept under the 8.1 carpet :)




回答2:


I had this issue recently and adding the constraints in code worked until I updated the app to be iPhone 6/ 6+ optimized, in that case I could still see the errors in the console log and it was in a bright pink color.

The best solution was to add the MKMapView directly on the storyboard, all messages and weird color behaviors were solved



来源:https://stackoverflow.com/questions/26095103/ios8-mkmapview-framebuffer-error-during-rotation-when-autoresize-is-applied

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!