iOS 7 状态栏与视图重叠。文本显示在屏幕的标题中。我想在名为“Carrier、4:49 和 Battery”的标题中显示没有文本的屏幕
如何在 iOS 6 和 iOS 7 中处理这个问题?
我认为它可以帮助你:
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]) {
self.edgesForExtendedLayout = UIRectEdgeNone;
}
你可以隐藏它,我认为在你的情况下看起来会更好。
在您的应用程序列表中添加此
查看基于控制器的状态栏外观,并设置为 NO
不幸的是,您不是唯一遇到此问题的人,而在 7 之前的 iOS 上,{0, 0} 点位于状态栏下方,现在位于屏幕顶部,我的建议是在每个 y 坐标上添加 +20.0f如果在 iOS 7 中
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// normal comportment
} else {
// add 20.0f offset
// you might also want to add a UIImageView subview to go behind the status bar (20pt of height, full width)
}
您可以在视图 didLoad 中执行此操作,就我而言,我计算了在视图控制器的 +(void)initialize 类方法中初始化的静态变量中的元素位置
如果在 -(void)viewDidLoad 类似
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
// normal comportment
} else {
for (UIView *v in self.view.subviews) {
CGRect oldFrame = v.frame;
v.frame = CGRectMake(oldFrame.origin.x, oldFrame.origin.y + 20.0f, oldFrame.size.width, oldFrame.size.height);
}
// you might also want to add a UIImageView subview to go behind the status bar (20pt of height, full width)
}
它不是 iOS 7 的问题。因为在 iOS7 中状态栏是透明的。所以你需要手动处理。所以请在这里使用正确的图像。
这可能会帮助您如何修复 iOS 7 状态栏重叠问题和状态栏样式
这对我有用。