【问题标题】:Bottom UIToolbar off screen on iPhone 4 and 4SiPhone 4 和 4S 上的底部 UIToolbar 关闭屏幕
【发布时间】:2015-10-04 21:33:25
【问题描述】:

我的问题和UIToolbar not displaying on iPhone 4 and iPhone 4s很相似

我正在使用 Xcode 7,并试图在各种 iPhone 屏幕尺寸上启动并运行基于“旧版”UINavigationController 的 iPhone 应用程序。通过 legacy ,我的意思是它不使用 Storyboard 等。视图是从 .xib 加载的。

该应用程序是一个经典的 UINavigationController 应用程序,带有 UITableViewControllers,但在表格视图下方的底部有一个 UIToolBar。 TableView 和 ToolBar 是 ViewController 的视图的子视图。 适用于 iPhone5/5s/6/6s。 但在 iPhone 4/4s 上,工具栏不在屏幕上。奇怪的是,如果我将屏幕旋转到横向,工具栏就会出现。转回来,它就消失了。我知道这看起来像是史前的 iOS 代码,但我在这里完全不知所措,浪费了数小时摆弄 Xcode 和 IB。我知道我遗漏了一些明显的东西。

【问题讨论】:

    标签: ios xcode controller navigation


    【解决方案1】:

    您的表格视图的高度似乎设置为固定高度,其中工具栏在 iPhone 5 及更高版本的表格视图下方可见。要在 iPhone 4/4s 上显示工具栏,需要使用类似以下代码的方法来降低表格视图框架的高度。

    - (void)viewDidLayoutSubviews 
    {   
        [super viewDidLayoutSubviews];
    
        if (onIphone4 && portraitOrientation) {
            CGFloat height = 480 - self.toolbar.frame.size.height;
            self.tableView.frame = CGRectMake(0, 0, 320, height); // for iPhone 4/4s
        } else if (onIphone5 && portraitOrientation) {
            CGFloat height = 568 - self.toolbar.frame.size.height;
            self.tableView.frame = CGRectMake(0, 0, 320, height); // for iPhone 5 and up
        }
    }    
    

    如果状态栏和导航栏也存在,您可能需要更改框架原点中的 y 位置。在这种情况下,需要针对这些变化调整整体框架高度。这是调整视图大小的基于框架的方式。

    另一种首选方法是在 XIB 中为工具栏和 Interface Builder 中的表格视图添加自动布局约束,以便它们保持相对于屏幕尺寸的适当大小和位置。

    【讨论】:

      【解决方案2】:

      我发现了问题..它是 IB 中的“启动时全屏”复选框,用于主“UIWindow”...我引用了 Apple 文档....

      “如果您选择在 Interface Builder 中创建窗口,请务必在属性检查器中选择“启动时全屏”选项,以便窗口大小适合当前设备。” 现在请原谅我一头撞墙……浪费了一个星期天!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-27
        • 2013-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-02
        相关资源
        最近更新 更多