Đây là hành vi mặc định UIViewControllertrên iOS 7. Chế độ xem sẽ ở chế độ toàn màn hình, nghĩa là thanh trạng thái sẽ bao phủ đầu chế độ xem của bạn.
Nếu bạn có UIViewControllerbên trong a UINavigationControllervà Thanh điều hướng hiển thị, bạn có thể có mã sau trong của bạn viewDidLoadhoặc có hình nền cho Thanh điều hướng thực hiện thủ thuật.
self.edgesForExtendedLayout = UIRectEdgeNone;
Nếu bạn đã ẩn navigationBar, thì bạn phải điều chỉnh tất cả các phần tử UIView bằng cách dịch chuyển 20 điểm. Tôi không thấy giải pháp nào khác. Sử dụng bố cục tự động sẽ giúp một chút.
Đây là mã mẫu để phát hiện phiên bản iOS, nếu bạn muốn tương thích ngược.
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;
}