【问题标题】:Why do navigation appear 20 pixels below status bar in the view? [duplicate]为什么导航显示在视图中状态栏下方 20 像素处? [复制]
【发布时间】:2013-05-28 19:06:17
【问题描述】:

可能重复:
UIWebView on iPad size

- (void)viewDidLoad {

    [super viewDidLoad];

    UINavigationController *naviController = [[UINavigationController alloc]init];

    [self.view addSubview:naviController.view];

}

如果我在视图中添加导航控制器,它会出现在状态栏下方约 20 像素处。 我希望它出现在状态栏下方。我该如何解决这个问题?

【问题讨论】:

    标签: ios4


    【解决方案1】:

    我也遇到过同样的问题。

    这个讨论很有帮助:UIWebView on iPad size

    Tony 的回答帮助我发现了这个技巧:

    naviController.view.frame = self.view.bounds;
    

    【讨论】:

    • 非常感谢,它对我有用。
    【解决方案2】:

    原来设置视图高度可以解决这个问题。您可以在 nib (xib) 文件中执行此操作,也可以在创建视图设置 view.frame = CGRect(0, 0, 320.0 460.0); 时以编程方式执行此操作。或者它应该是什么(在你的情况下,它看起来应该是 460.0,因为你有状态栏)。

    主要的一点是,如果视图大小小于屏幕高度,则无法保证您的控件会显示在哪里。

    【讨论】:

    • viewController.view.frame = CGRectMake(0, 0, 320.0, 480.0);在 addSubview 之前工作。我不知道它会不会有另一个问题。谢谢。
    【解决方案3】:
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        CGRect frame = CGRectMake(0, 0, 320.0, 480.0);
        viewController.view.frame = frame;
        [self.window addSubview:viewController.view];
        [self.window makeKeyAndVisible];
    
        return YES;
    }
    

    我像上面一样改变了。有用。到目前为止,一切都很好。如果高度为 460,则底部会有空白行。 View 的绝对坐标是 (0, 20)。因此,导航栏的坐标为 (0, 40)。我认为这就是问题所在。我会遇到另一个问题。 也许有办法在显示导航视图之前更改坐标。谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-30
      • 2019-05-15
      • 1970-01-01
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-06
      相关资源
      最近更新 更多