Мой первоначальный ответ следует ниже. Это было действительно в то время, когда я опубликовал его, но Apple больше не разрешает использование UIGetScreenImage. Насколько мне известно, после запуска iOS4 нет никакой альтернативы, как сделать слои с 3D-преобразованием + ваше приложение будет отвергнуто, если вы используете UIGetScreenImage
Из документов разработчика iPhone на renderInContext:
Кроме того, слои, которые используют 3D преобразования не отображаются, равно как и слоев, которые определяют backgroundFilters, фильтров, compositingFilter или маску значения.
Таким образом, renderInContext не является функцией, которую необходимо использовать для визуализации слоя, на котором применено 3D-преобразование.
Лучшее, что вы можете сделать, это позвонить: UIGetScreenImage, который в основном даст вам скриншот, и вы сможете извлечь изображение из этого скриншота.
UIGetScreenImage больше не допускается. Я только что получил электронное письмо от Apple, попросив прекратить использование этой частной функции и использовать -renderInContext: (на iOS 3.x) или AV Foundation AVCaptureSession и связанные классы (на iOS 4). – vfn
Я получил сегодня тот же адрес электронной почты от Apple, и мой случай похож на ваш. По-видимому, нам придется поцеловать до свидания всем пользователям, использующим iOS3, или поцеловать прощание с захватом ... любые мысли? – SpaceDog
Забавно, что сегодня одно из моих приложений тоже было отклонено для использования UIGetScreenImage() ... Я тестировал на iOS4, но renderInContext STILL НЕ производит 3D-преобразования, поэтому я честно не знаю, что лучше всего делать прямо сейчас –