xcode – iOS 7状态栏和self.view.frame以及self.view.bounds
发布时间:2020-12-14 19:30:26 所属栏目:百科 来源:网络整理
导读:我最近发布了一个iOS6应用程序,我需要为iOS 7更新它.新状态栏有点问题. self.view的框架/界限似乎已经改变(20分),我使用self.view.bounds来确定一些元素的位置.我一直在寻找一些解决方案.基本上我需要更新应用程序,同时仍然支持iOS 6状态栏.这是最好的做法吗
我最近发布了一个iOS6应用程序,我需要为iOS 7更新它.新状态栏有点问题. self.view的框架/界限似乎已经改变(20分),我使用self.view.bounds来确定一些元素的位置.我一直在寻找一些解决方案.基本上我需要更新应用程序,同时仍然支持iOS 6状态栏.这是最好的做法吗?
下面的代码似乎可以检测iOS 7设备并将内容转移到位,但也会导致其他问题.无论如何,我不相信这是最好的方式. if([[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue] >= 7) { CGRect statusBarViewRect = [[UIApplication sharedApplication] statusBarFrame]; float heightPadding = statusBarViewRect.size.height+self.navigationController.navigationBar.frame.size.height; [myContentView setFrame:CGRectMake(0,heightPadding,self.view.frame.size.width,self.view.frame.size.height - heightPadding)]; } 解决方法
您可以通过在iOS7 SDK中实现名为edgesForExtendedLayout的新属性来实现此目的.请添加以下代码来实现此目的,
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) self.edgesForExtendedLayout = UIRectEdgeNone; 您需要在 – (void)viewDidLoad方法中添加上述代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |