1

我在弹出窗口中包含了一个导航控制器。该视图包含一个我想部分覆盖的图像。在 iOS6 中是在导航栏的后面,在 ios7 中正好相反。附上截图。有谁知道为什么?在此处输入图像描述

4

3 回答 3

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]
}
于 2013-10-31T09:35:21.847 回答
0

如果不需要导航栏半透明,可以试试navigationBar.isTranslucent = NO。

于 2013-11-10T19:21:02.393 回答
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

    }
 }
于 2013-12-13T01:41:09.300 回答