snapshotViewAfterScreenUpdates на UIScreen дает пустой снимок на устройстве
Я пытаюсь получить изображение всего экрана так, как его видит пользователь. Следующий код должен работать, однако он будет работать только в симуляторе. Что мне нужно сделать, чтобы заставить это работать на устройстве под управлением iOS 8.1?
UIView *snapshot = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:YES];
CGSize outputSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
UIGraphicsBeginImageContextWithOptions(outputSize, NO, 0);
[snapshot drawViewHierarchyInRect:CGRectMake(0.0, 0.0, outputSize.width, outputSize.height) afterScreenUpdates:YES];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Рад попробовать альтернативные стратегии, но главное - я хочу, чтобы это было так, как видит пользователь - клавиатуры и все такое.
ура
1 ответ
UIGraphicsBeginImageContextWithOptions(CGSizeMake(CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)), NO, 1.0f);
[self.view drawViewHierarchyInRect:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)) afterScreenUpdates:NO];
UIImage *snapshotImage = UIGraphicsGetImageFromCurrentImageContext();