Я пытаюсь реализовать приложение для обмена с facebook. Я использовал этот код, чтобы сделать снимок экрана:
CGSize imageSize = CGSizeMake(self.view.bounds.size.width, self.view.bounds.size.height);
UIGraphicsBeginImageContext(imageSize);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Он отлично работает на iOS 6, но в iOS 7 изображение выглядит очень плохо. Я использовал этот ответ: iOS: какой самый быстрый, самый эффективный способ сделать скриншот программным? для попытки исправить это, и это помогло, но скриншот выглядит плохо. Экран получает другой цвет, а некоторые объекты (например, метки) не отображаются на изображении. Любая помощь?
---- Обновление ----
Мне удалось решить большинство объектов, изменив их на сохранение вместо слабых. Моя главная проблема осталась моей таблицей, показанной как большой белый блок (он должен быть прозрачным, с ярлыками с белым текстом, поэтому все, что мы видим, это белые клетки). Я попытался определить фон таблицы как clearcolor, а не помогает.
---- Последнее обновление ---
Здесь есть замечательные ответы, которые действительно не касаются моей проблемы. Я хотел, чтобы это работало на устройстве, которое работает с iOS7, но без использования iOS7 SDK, так как в этот момент требуется много усилий для переключения SDK проекта, когда проект почти завершен.
В любом случае, я добавил мир кода, который окончательно решил мою проблему:
Это изменение просто решает проблему:
UIGraphicsBeginImageContextWithOptions(imageSize, NO , 0.0f);
вместо:
UIGraphicsBeginImageContext(imageSize);