Это поведение по умолчанию для UIViewControlleriOS 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;
}