【问题标题】:iOS UI elements are stretched after switching back and forth in tab bar controlleriOS UI 元素在标签栏控制器中来回切换后被拉伸
【发布时间】:2014-01-23 08:34:18
【问题描述】:

我在一个 iOS 应用程序的第一个视图中有几个 UI 元素在三视图标签栏控制器中。

当我运行该应用程序时,第一个视图看起来以某种方式显示,但随后我切换到另一个视图,然后返回到第一个视图 - 第一个视图被拉伸(主要似乎是垂直拉伸)。

我认为这与约束有关,但我不确定。

什么可能导致这个问题?

谢谢!

【问题讨论】:

  • 如果您需要帮助,您需要提供一些代码。这里没有足够的信息。也就是说,我敢打赌,问题出在您的 viewWillAppear:viewDidAppear: 方法中。
  • 我现在注意到两件事:1. 它只发生在 iPhone5 上(不是更早的)。 2. 如果我打开通讯录或联系人(我的应用程序中需要的功能),我会看到视图拉伸回其默认大小。然后在我切换标签时再次拉伸。
  • 会不会是使用iOS7时底部布局指南不固定?

标签: ios objective-c


【解决方案1】:

当您看到事物随机变化时,这通常意味着您的布局不明确。这意味着您没有为自动布局提供足够的信息来确切知道您想要什么。例如,您是否设置了水平约束?

您可以通过设置断点并在调试器中运行来检查这一点

po [[UIWindow keyWindow] _autolayoutTrace]

此外,如果您发布您的限制条件,有人可能会更好地帮助您。

【讨论】:

  • 我已经清除了所有不明确的布局。只是非常不清楚为什么 UIViewImage 不与顶部和底部布局指南保持连接。
  • 清除了不明确的布局后是否仍然表现得很奇怪?没有细节很难回答你的问题。发布您的代码和 autolayoutTrace,也许有人可以帮助您。
  • 我有踪迹,但我应该寻找什么?
  • 我不能将图像限制在“底部布局指南”中吗?我试图让背景不被底栏遮挡,但自动修复自动布局会消除此约束。它甚至不会在警告中显示为模棱两可。
  • 显然当我从其他标签栏项目切换 bask 时 self.bottomLayoutGuide.length 更改为 0,而当我从通讯簿或联系人视图返回时不会发生。这是什么原因造成的?
【解决方案2】:

这是由于 iOS 中的一个 bug,其中 bottomLayoutGuide 被错误地设置为 0。

UIViews ending up beneath tab bar

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多