我最近发布了一个 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)];
}