【问题标题】:Tab bar doesn't back with size after rotation旋转后标签栏不返回大小
【发布时间】:2018-08-14 11:36:00
【问题描述】:

旋转设备后,标签栏的大小没有变回。

场景:

  1. 将根 VC 设置为第一个控制器,如果是选项卡栏,则该控制器不相关
  2. 登录应用程序(第一个 VC 可能是登录页面)
  3. 将选项卡栏设置为根 VC,以从堆栈中退出登录 VC。

标签栏内:

override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        UIApplication.shared.keyWindow?.rootViewController = self
    }

纵向模式下旋转前的屏幕。

屏幕处于横向模式。

我们从横向旋转回纵向后的屏幕。

我们可以看到标签栏的高度与横向位置相同。 我怎么能改变它?有什么属性会影响这个吗?

【问题讨论】:

    标签: swift


    【解决方案1】:

    作为一个我自己有一点代码强迫症的程序员,让我感到困扰的是它在横向上仍然保持相同的大小,但不幸的是,你无法更改 UITabBar 的大小。您可能必须考虑自己制作一个才能完全自定义它。也许完全禁用景观?在当今的大多数应用程序中确实没有必要这样做,幸运的是每个人都有使用肖像的习惯。

    编辑: 查看 UIScrollViews。您可以在每个页面上添加UIViewController,让您在浏览控制器时拥有 Snapchat 的感觉,当然,您还可以在其上创建自己的 TabBar。我实际上目前正在自己​​做这件事。如果你想看一些代码,请联系我。

    【讨论】:

    • 我将应用设计为标签栏应用。
    【解决方案2】:

    如果你想根据高度改变它,你可以为标签栏设置一个出口,然后得到框架的高度和宽度。

    然后运行 ​​if 语句来检查哪个更大,并在括号中添加相应的代码,以设置标签栏的高度。

    【讨论】:

    • 我认为应该有另一种解决方案,这似乎是一个可以通过设置一个属性来修复的错误。
    • 这是什么意思?
    • 在登录应用程序后将新的根 VC 设置为选项卡栏会产生此错误。
    • 好的,我明白你的意思了。
    猜你喜欢
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-04
    • 2012-06-22
    • 2021-01-07
    • 1970-01-01
    相关资源
    最近更新 更多