【问题标题】:Launch Screen XIB: Missing Width / Height Constraints (Xcode 6)启动屏幕 XIB:缺少宽度/高度约束 (Xcode 6)
【发布时间】:2015-03-28 23:33:22
【问题描述】:

使用 Xcode 6,我正在构建一个针对 iOS8 的 iOS 应用程序。

我正在处理从菜单创建的LaunchScreen.xib 文件:File > New > File > iOS - User Interface - Launch Screen。 “使用自动布局”已启用。

在 XIB 的主要 UIView 中,我放置了一个 UIImageView。我想添加宽度和高度约束,以便UIImageView 与容器具有相同的大小。但是,Xcode 不允许我这样做:我只能处理间距和对齐。

这是我看到的:

我做错了什么?为什么我看不到类似下面的菜单?

我知道通过将容器的前导空格、尾随空格、顶部空格和底部空格设置为 0 可以达到相同的结果,但我也想了解这里发生了什么。

【问题讨论】:

    标签: ios xcode interface-builder autolayout


    【解决方案1】:

    每个 .xib 都会发生这种情况,您只是无法制作与主视图宽度相等的视图。另一方面,当您在故事板中时可以这样做。

    最后,正如您所说,您可以通过设置前导、尾随顶部和底部距离来完成所需的布局。

    【讨论】:

    • 谢谢,我已经注意到你可以用故事板解决这个问题,但我想知道为什么你不能用 XIB(Xcode 默认生成)做同样的事情。有原因吗?任何官方文件解释了差异?这是一种奇怪的行为,我很好奇幕后的情况。
    • 我最好的猜测是这是实现中对我们隐藏的细节,可能是出于性能原因。但不确定那里发生了什么。
    【解决方案2】:

    您的应用会在单一设备上运行吗?如果不是,你怎么知道容器的大小?它会在 iPhone 5、iPhone 6、iPod 或 iPad 之间有所不同。最好的办法还是将前导空格、尾随空格、顶空格和底空格指定为 0。您确定它适用于任何设备。

    无论如何,我试图重现该问题,但是当进入 Pin 菜单时,无论是在 Editor/Pin 中还是通过按下编辑器底部的按钮,我都能够指定图像视图的宽度和高度。我可以毫无问题地指定任何宽度/高度。

    希望有帮助!

    【讨论】:

      【解决方案3】:

      编辑:

      Xcode 7+ 默认为启动屏幕的情节提要文件。
      如下所述,与 XIB 不同,Storyboard 文件允许您为根 UIView 设置宽度和高度约束。


      我还没有找到官方解释为什么 XIB 会这样,当它们的根有 UIView
      在我看来很奇怪的是,我们默认提供的 (LaunchScreen.xib) 的行为与我们习惯的 Storyboard 的行为完全不同。

      我选择的第一个解决方案是使用 Storyboard 来绘制启动屏幕,而不是 XIB:

      • 删除LaunchScreen.xib
      • 创建LaunchScreen.storyboard(菜单:File > New > File > iOS - User Interface - Storyboard
      • 转到您的项目属性,选择导航到目标的常规属性,然后在“启动屏幕文件”组合框中选择LaunchScreen.storyboard
      • 打开LaunchScreen.storyboard,添加一个视图控制器,并确保勾选“是初始视图控制器框”
      • 您现在可以将 View Controller 的 View 用作启动屏幕,并且您将获得我最初寻找的宽度和高度限制

      另一种解决方案是删除LaunchScreen.xib 中的默认UIView 并将其替换为视图控制器。
      就像前面的例子一样,如果你这样做,你可以在 View Controller 的 View 上工作,你会得到通常的约束菜单。

      【讨论】:

        【解决方案4】:

        一个非常简单的解决方案是添加一个清晰的 UIView 并将其固定到容器中,然后您可以通过将它们与您添加的清晰的“根”UIView 关联来访问所有约束。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-01
          • 2011-09-09
          • 1970-01-01
          • 2018-02-25
          • 1970-01-01
          • 2011-07-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多