我目前正在开发使用Objective-C和iOS 8.x制作的应用程序的新版本
布局有两个问题:
导航栏顶部显示背景颜色均匀的条形图,隐藏了导航图像的一半内容
屏幕底部显示一个大白条
该应用程序的最新更新是使用iOS 9.3,因此它与iOS 10或11中的更改有关。
在iphone6上观察到这个问题。或iPhone X也会出现此问题,但顶栏上方有一个空格:
截图iPhone 6:https://i.imgur.com/nSMc4oL.png
截图iPhone X:https://i.imgur.com/7nanJMn.png
我尝试将true
设置为setVertexBytes
,但这会让事情变得更糟:顶部栏仍然存在,并添加了另一个大栏。
答案 0 :(得分:1)
在iOS 11中,导航栏高度增加。这是支持iPhone X设备的一种方法。
if(@available(iOS 11,*))
{
self.navigationController.navigationBar.prefersLargeTitles = false;
self.navigationController.navigationItem.largeTitleDisplayMode = UINavigationItemLargeTitleDisplayModeNever;
}
CGFloat statusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
NSLog(@"Status bar height:%f",statusBarHeight);
double CurrentDevicescreenHeight = [[UIScreen mainScreen] bounds].size.height;
NSLog(@"Current Device Height:%f",CurrentDevicescreenHeight);
if(CurrentDevicescreenHeight == 812) {
CGFloat iPhoneXstatusBarHeight = [[UIApplication sharedApplication] statusBarFrame].size.height;
NSLog(@"iPhone X Device:- Status bar height:%f",iPhoneXstatusBarHeight);
float tophight = self.navigationController.navigationBar.frame.size.height;
NSLog(@"iPhone x device navigation bar height:%f",tophight);
self.navigationController.navigationBar.frame = CGRectMake(0, 20, 320, 44);
}