【问题标题】:In xcode 6.1, interface builder deleting ui elements在 xcode 6.1 中,界面生成器删除 ui 元素
【发布时间】:2014-12-19 15:43:16
【问题描述】:

我有一个包含一些表格视图和一些集合视图以及一些按钮和标签的视图。

我不确定这是否是 Xcode 6.1 的新功能,因为我已经有一段时间没有研究这个项目的 ui 方面了。但是,当我尝试调整视图中任何内容的大小时,我的表格视图和集合视图以及可能我没有注意到的其他一些元素都会被删除。具体来说,他们的 frame 或 rect 属性似乎被删除了。

需要明确的是,这只发生在我尝试通过在界面生成器中拖动边来调整元素大小时。如果我通过直接在 IB 侧边栏或 xml 中更改数字来调整它们的大小,则不会发生这种情况。

我想知道这是否是 Xcode 中的错误,或者我是否做了一些事情来导致这种行为,我可以改变。

谢谢!

【问题讨论】:

  • 我也有同样的问题。在 XCode 将它们的帧设置为 0,0,0,0 之后,不断调整视图大小并将视图移回原位非常有趣。
  • 这绝对是一个非常令人不安的错误,影响 Xcode 6.1 中的自动布局。
  • 确认它在 Xcode 6.3 beta 中运行良好。我不知道为什么,但我的实时 Xcode 不会“App Store”更新到 6.1.1,所以它被这个 bug 卡住了。

标签: ios objective-c xcode uitableview interface-builder


【解决方案1】:

通过在“显示文件检查器”->“界面生成器文档”中关闭自动布局,我至少对这个项目进行了修复

我过去从未使用过此功能,所以我不知道它是否在过去打开,但我想知道新的 Xcode 版本是否在其他人关闭的地方默认打开它。 也有可能一直开启,但是新版本的功能有bug。

这解决了我的问题,至少在这个特定项目中,至少现在是这样。我希望其他人觉得这很有用。

【讨论】:

  • 我不认为这是一个修复,因为自动布局对于 iOS8 中的许多应用程序都很重要。
【解决方案2】:

从这里看起来像是 Xcode 6.1 中的一个错误。

我创建了一个干净的项目,我的机器上的行为是一样的:

https://github.com/nasht/Xcode6ConstraintTest.git

调整一个视图的大小会使其他视图消失。将布局约束从 = 更改为 = 似乎也可以。

我向 Apple 提出了一个错误。建议你也这样做。

解决方法:您可以安装 xcode 6.01 并从那里使用界面生成器。如果您依赖 xcode 6.1 的特定功能,您仍然可以使用 xcode 6.1 编译和运行您的代码。 (你需要重命名你的 xcode.app 以便你可以运行这两个实例。)它很丑,但它可以工作。

【讨论】:

  • 为我解决了 XCode 6.1.1 :)
【解决方案3】:

我发现它在下一个版本的 xcode (6.1.1) 上已修复

【讨论】:

    【解决方案4】:

    同样的问题,yosemit 和 xocde 6.1。只有当我禁用自动布局时,我才能调整某些视图的大小。

    【讨论】:

      【解决方案5】:

      我想我遇到了这个“问题”。我相信这是因为我的限制之一没有正确设置。

      【讨论】:

      • 你还记得任何细节吗?
      • @Mason 确保您的所有视图都具有相对于其他视图的约束以及对容器视图(父视图)的顶部和底部约束。
      【解决方案6】:

      您使用的是哪个 OS X 版本?我今天更新到 Yosemite 和 6.1。当我调整标签大小时,我的其他元素并没有被删除,而是被调整大小和重新定位。宽度/高度将更改为 0,0,x / y 也将更改为 0,0。

      我注意到优胜美地的其他问题,所以继续进行时间胶囊恢复到 Mavericks 和 Xcode 6.0

      【讨论】:

        【解决方案7】:

        我在通用应用程序中遇到了同样的问题; iphone工作正常,ipad不工作。

        我正在使用 xCode 6.1 和 OSX Yosemite 我的应用支持 iOS7 和 iOS8,我在 iPad 版本的 iOS7 上也遇到了同样的问题

        修复:

        所以我通过在界面生成器中设置 Simulated Metrics 来修复它 大小 = iPad 全屏横向或纵向方向

        【讨论】:

          【解决方案8】:

          我在使用 Xcode 6.1 和 Yosemite 时遇到了同样的问题: 我创建了一个已添加到主视图的视图,因此它在视图控制器场景中看起来像一个子视图。 然后我将此子视图的大小调整为 320 x 568。我的程序有效。对应斯坦福 CS193P Lecture 9 的程序 dropit。 我保存项目,关闭它并重新打开它:子视图的宽度和高度设置为 0!

          我试图打开第 8 讲的项目 dropit,它是完全一样的,它之前工作过(我认为在 Xcode 6 中)和同样的问题!首先,我认为点击(与子视图相关)不起作用,但发现点击不起作用,因为我正在点击宽度和高度设置为 0 的子视图!

          【讨论】:

            【解决方案9】:

            我已经重置了所有 UIElement 都添加到的大小类 wCompact hAny。并得到纠正。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-07-19
              • 2011-04-12
              • 2013-04-21
              • 1970-01-01
              • 2012-09-19
              • 1970-01-01
              • 1970-01-01
              • 2014-07-26
              相关资源
              最近更新 更多