iphone - захват содержимого основного экрана - PullRequest
1 голос
/ 14 августа 2010

У меня есть особая функция в приложении, которое предназначено для работы на iPhone 4 и iPad.У меня еще нет iPad (потому что Apple забыла мою страну), поэтому я должен проверить его на симуляторе.

У меня есть метод, который должен захватывать содержимое основного экрана как 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 всегда является основным экраном.

Есть ли другой способ захвата содержимого основного экрана из другого класса?

заранее спасибо.

1 Ответ

2 голосов
/ 14 августа 2010

Может быть, используйте keyWindow, чтобы получить правильное окно напрямую?

UIWindow *theScreen = [[UIApplication sharedApplication] keyWindow];

Для страновой проблемы - рассмотрите возможность заказа одного из другой страны.; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...