我在弹出窗口中包含了一个导航控制器。该视图包含我想部分覆盖的图像。在iOS6中是导航栏的后面,在ios7中恰恰相反。附上截图。 有谁知道为什么?
答案 0 :(得分:1)
使用自动布局约束:http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1
或试试这个(没有优雅的解决方案):
NSString *ver = [[UIDevice currentDevice] systemVersion];
float ver_float = [ver floatValue];
if (ver_float >= 7.0f)
{
CGRect frame = self.myView.frame;
frame.origin.y = self.navigationBar.frame.size.height;
[self.myView setFrame:frame]
}
答案 1 :(得分:0)
如果您不需要半透明的导航栏,可以尝试navigationBar.isTranslucent = NO。
答案 2 :(得分:0)
在iOS 7中,默认情况下布局会扩展容器的边缘。这是edgesForExtendedLayout
视图控制器属性的控制器。如果您希望布局从顶部与导航栏对齐开始,则需要通过设置self.edgesForExtendedLayout
来禁用它。
例如:
- (id)init
{
if ((self = [super init])) {
// layout with top of view starting at bottom of navigation bar
self.edgesForExtendedLayout = UIRectEdgeNone;
// continue with init
}
}