我最近发布了一个iOS6应用程序,现在需要将其更新为iOS 7。新的状态栏有一些问题。self.view的frame/bounds似乎已经改变了(+20个点),而我使用self.view.bounds来确定某些元素的位置。我一直在寻找解决方案。基本上,我需要在更新应用程序的同时仍支持iOS 6状态栏。有没有最佳实践?
下面的代码似乎可以检测到iOS 7设备并将内容移动到正确位置,但也会引起其他问题。无论如何,我不确定这是否是最佳方法。
下面的代码似乎可以检测到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)];
}