Строка состояния на самом деле находится в собственном UIWindow, в вашем коде вы отображаете только представление вашего viewcontroller, которое не включает это.
"Официальный" метод скриншота был здесь , но теперь, похоже, Apple его удалил, возможно, из-за того, что он устарел.
В iOS 7 теперь есть новый метод UIScreen
для получения представления, содержащего содержимое всего экрана:
- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates
Это даст вам представление, которым вы можете затем манипулировать на экране для различных визуальных эффектов.
Если вы хотите нарисовать иерархию представления в контексте, вам нужно перебрать окна приложения ([[UIApplication sharedApplication] windows]
) и вызвать этот метод для каждого из них:
- (BOOL)drawViewHierarchyInRect:(CGRect)rect afterScreenUpdates:(BOOL)afterUpdates
Вы можете быть в состоянии объединить два вышеупомянутых подхода и сделать снимок экрана, а затем использовать описанный выше метод на снимке, чтобы нарисовать его.