У меня есть определенная функция в приложении, предназначенном для работы на iPhone 4 и iPad. У меня пока нет iPad (потому что Apple забыла мою страну), поэтому я должен проверить его на симуляторе.iphone - захват содержимого главного экрана
У меня есть метод, который должен захватить содержимое основного экрана как CGImageRef.
У меня есть этот метод:
- (CGImageRef)takeScreenshot {
UIWindow *theScreen = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIGraphicsBeginImageContext(theScreen.frame.size);
[[theScreen layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return screenshot.CGImage;
}
Когда я скомпилировать и протестировать версию iPhone моего приложения для iPhone, он прекрасно работает. Но когда я компилирую и тестирую версию iPad на симуляторе iPad, он возвращает черный экран.
Для этого я должен изменить «objectAtIndex: 0» на «objectAtIndex: 1» на второй строке.
Есть ли какая-либо логика для этого или это просто ошибка симулятора? Насколько мне известно, индекс 0 всегда является основным экраном.
Есть ли другой способ захвата содержимого основного экрана из другого класса?
благодарит заранее.
Я тоже думаю об этом. Я думал, что это незаконно с точки зрения яблок, чтобы захватить экран (или это было с использованием частного api)? – Remover