【问题标题】:Root ViewController View is not taking TabBar and NavBar into accountRoot ViewController View 没有考虑 TabBar 和 NavBar
【发布时间】:2016-04-27 10:50:25
【问题描述】:

我有一个嵌入在导航和标签栏视图控制器中的视图控制器。我曾假设 self.view 在几何上是从导航栏底部和标签栏顶部开始的边界。这是我在网上看到的。通过viewWillAppear 调整视图的大小以从高度中减去选项卡和导航栏,基本上。但是,这不会发生在我身上。当我注销我的视图框架时,它是相同的......{{0, 0}, {375, 667}}。在viewDidLoadviewDidLayoutSubviewwillAppear 中,DidAppear 是同一帧。因此,如果我将 imageView 作为 self.view 的子视图,框架为(0,0,screenWidth, 200)。该 imageView 似乎被导航栏遮挡。在我看来,这不是标准行为。

【问题讨论】:

    标签: ios objective-c uiview uiviewcontroller uitabbarcontroller


    【解决方案1】:

    如果您希望 UIViewController 从导航栏下方开始,请将其放在 viewDidLoad 上:

    self.edgesForExtendedLayout = UIRectEdgeNone;
    

    【讨论】:

    • 我仍然无法更改视图的框架。这似乎导致了一个不同的框架,一个高度较小的框架。但是如果我创建一个新视图并将其分配给 viewWillAppear 中的 self.view ,它会忽略这一点并注销同一帧。
    • 我发布的代码根本没有改变框架。它只会阻止 UIViewController 延伸到导航栏下方。为了帮助您调试问题,请在 UIViews 周围设置一些边框
    • 它确实改变了视图。视图的高度现在实际上是屏幕高度减去状态+选项卡+导航栏。只是我无法在任何 view* 方法中自己手动更改框架。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 2015-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多