更改选项卡时视图更改大小

Posted

技术标签:

【中文标题】更改选项卡时视图更改大小【英文标题】:View changes sizes when tab is changed 【发布时间】:2016-06-13 08:02:39 【问题描述】:

我有一个有 5 个视图的 tabBarController。问题是,当我更改选项卡时,视图大小会从最初的大小发生变化,并且会弄乱我的 UI。返回选项卡时,还有一个内容偏移量。我已经设置 self.automaticallyAdjustsScrollViewInsets = false 但这也无济于事。 这是输出到

print(self.view.frame) 

App 首次启动时输出为 (0.0, 0.0, 320.0, 568.0)

当标签被改变并且我回到主视图时,输出是 (0.0, 64.0, 320.0, 455.0)

我该如何解决这个问题?

【问题讨论】:

您是手动创建tabBarController 吗?喜欢使用创建多个 xib 或 nib,然后在 tabBarController 中使用它们? 是手动创建的@AbdulRehmanWarraich 请分享一些代码。这将有助于理解问题 【参考方案1】:

我认为你的问题是:

当您当时正在运行应用程序时,您的视图没有考虑导航栏的高度,因为它的原点 y 是 0.0,当您更改选项卡时,它正在检测屏幕上的导航栏,因此视图正在考虑其上方的导航栏并采用它origin 64.0(即20.0状态栏和44.0导航栏)。

解决这个问题:

您可以根据需要在顶栏 Yes/No 下设置视图控制器属性,或者您可以根据需要在 ViewDidLoad 或 ViewWillAppear 中获取一个子视图并根据主视图框架设置其框架。

希望这对您有所帮助。 :)

【讨论】:

以上是关于更改选项卡时视图更改大小的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:Tabview,更改选项卡时保持状态

手风琴选项卡更改暂停视频

在 Sencha Touch 2 中更改选项卡时发出 Ajax 请求

更改选项卡时忽略自动旋转

未选择选项卡时更改 UITabBarController 选项卡图标颜色

关闭选项卡以关注上一个选项卡而不是第一个选项卡时如何更改 dojo 内容选项卡焦点?