【问题标题】:How to prevent view resizing/transform when UINavigationBar hides/showsUINavigationBar 隐藏/显示时如何防止视图调整大小/转换
【发布时间】:2010-05-19 11:21:01
【问题描述】:

我有一个带有标签栏和导航栏的应用程序。我推送一个用于显示照片的视图控制器,一次一张。它最初显示条形图和前进/后退控件;延迟后,这些隐藏,使用标签栏上的setNavigationBarHidden:animated: 和自定义转换 (CGAffineTransformMakeTranslation)。这可行,但是显示照片的视图控制器 view 会上下跳跃。如果我将标签栏排除在等式之外,情况也是如此。

如何防止 UINavigationBar 移动我的视图?我希望照片在屏幕上保持固定,导航栏会下降到它的顶部。

【问题讨论】:

  • 我已经通过忽略 UINavigationController 并以模态方式呈现图像视图来处理这个问题。这可行,但并不完全令人满意。
  • 嘿,我设法解决了我的问题 - 也许它也适合你。看看:stackoverflow.com/questions/2881905/…

标签: iphone uiimageview uinavigationbar uitabbar resize


【解决方案1】:

遇到此问题并使用继承自 UINavigationController 的类修复它

-(void)viewWillAppear:(BOOL)animated
{
    self.navigationBar.translucent = YES;
}

对我来说效果很好,不必将样式设置为 UIBarStyleBlackTranslucent。所以它确实保留了我的颜色。

【讨论】:

    【解决方案2】:
    [[navigationController navigationBar] setBarStyle:UIBarStyleBlackTranslucent];
    [[navigationController navigationBar] setAutoresizesSubviews:NO];
    

    这似乎对我有用!

    【讨论】:

      【解决方案3】:

      我知道这是一个老问题,但我通过在 Interface Builder 中禁用“自动调整子视图”来实现这一点

      【讨论】:

        【解决方案4】:

        除了将导航栏样式设置为半透明之外,我还没有找到合适的方法来处理这个问题:

        theNavigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;
        

        除了创建另一个导航栏并向它们添加按钮之外,这是最好的(这似乎是 Apple 在其照片应用程序中所做的)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-10-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多