По какой-то неизвестной причине, похоже, существует возможная ошибка со всеми методами скриншотов на симуляторе (и устройстве) iPhone 6. Всякий раз, когда я называю любой из методов скриншота, включая:Методы моментальных снимков на устройстве и симуляторе iPhone 6
snapshotViewAfterScreenUpdates: resizableSnapshotViewFromRect: drawViewHierarchyInRect:
с afterScreenUpdates установлен в YES, экран мерцает. Если установлено значение НЕТ, тогда не происходит мерцания, но я не могу получить необходимую мне функциональность.
Эти методы отлично работают с iOS7.1 и iOS8 во всех других симуляторах, за исключением iPhone 6 и 6+.
Как ни странно, если я начну новый проект с использованием раскадровки и попробую аналогичный код, я не могу воспроизвести мерцание. Я приложил GIF мерцаний с помощью моего без раскадровки проекта:
А вот очень простой контроллер вид:
@implementation TestSnapshotController
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Snap" style:UIBarButtonItemStylePlain target:self action:@selector(_snap)];
self.blueView = [UIView new];
self.blueView.backgroundColor = [UIColor blueColor];
self.blueView.frame = CGRectMake(100.0f, 100.0f, 100.0f, 100.0f);
[self.view addSubview:self.blueView];
}
- (void)_snap
{
[self.blueView snapshotViewAfterScreenUpdates:YES];
}
@end
А вот мой AppDelegate на всякий случай:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
TestSnapshotController *testVC = [TestSnapshotController new];
UINavigationController *rootNavVC = [[UINavigationController alloc] initWithRootViewController:testVC];
self.window.rootViewController = rootNavVC;
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Любая помощь была бы принята с благодарностью!