Это поведение по умолчанию для UIViewController
iOS 7. Представление будет полноэкранным, что означает, что строка состояния будет закрывать верхнюю часть вашего представления.
Если у вас есть UIViewController
внутри a UINavigationController
и отображается навигационная панель, у вас может быть следующий код в вашем viewDidLoad
или фоновое изображение для navigationBar.
self.edgesForExtendedLayout = UIRectEdgeNone;
Если у вас скрыта панель навигации, вам необходимо настроить все элементы UIView, сдвинув 20 точек. Другого решения не вижу. Немного поможет использование автоматической раскладки.
Вот пример кода для определения версии iOS, если вы хотите обеспечить обратную совместимость.
NSUInteger DeviceSystemMajorVersion() {
static NSUInteger _deviceSystemMajorVersion = -1;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
NSString *systemVersion = [UIDevice currentDevice].systemVersion;
_deviceSystemMajorVersion = [[systemVersion componentsSeparatedByString:@"."][0] intValue];
});
return _deviceSystemMajorVersion;
}