【问题标题】:Finding cause of "Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0"查找“自动首选最大布局宽度在 8.0 之前的 iOS 版本上不可用”的原因
【发布时间】:2015-01-11 06:46:14
【问题描述】:

我知道这个警告的原因以及如何解决它:给标签一个首选的宽度。

问题是,当我单击该警告时,我没有看到任何标签/视图/视图控制器被选中。故事板打开,就是这样。我的故事板中有许多视图控制器和许多视图。如何在不手动遍历所有视图控制器的情况下找出导致问题的标签?当我单击警告时,我希望它会将我带到导致警告的视图,但它只是打开情节提要。

【问题讨论】:

    标签: xcode interface-builder xcode6 xcode6.1


    【解决方案1】:

    我必须切换到 XCode 6.2 --> 点击 XCode 主区域右上角的警告图标 --> 选择警告 --> 它会准确显示导致警告的项目。

    【讨论】:

      【解决方案2】:

      在没有自动布局的 7.1 开发的现有项目中,我遇到了同样的问题。 一旦我将应用程序迁移到 iOS8 并在项目文件中将版本更改为 8.0,由于某种原因,我在 Xib 中收到了该警告,我在其中使用了多行 UILabel。

      为了更正问题,选择 Xib 的文件检查器并检查它构建的版本,在我的情况下它仍然适用于 iOS7

      您应该将 Build for 更改为相关版本

      警告会像我的情况一样消失:-)

      【讨论】:

      • 但是如果我还需要支持 pre-iOS 8 怎么办?
      • 好吧,你可以在 iOS7 中支持自动布局,正如我所提到的,在我的情况下,一旦我迁移到 iOS8,Xib 仍然在 iOS7 中(没有迁移),我收到了关于“自动首选最大布局宽度”。一旦我在文件检查器中将构建更改为 iOS8(与项目中相同),警告就消失了。希望对你有帮助
      【解决方案3】:

      只需从标签中删除行数并以编程方式设置它

      [label setNumberOfLines:2];
      

      【讨论】:

      • 这不是解决方案,只是警告的解决方法。
      【解决方案4】:

      运行 XCODE 6.1,我发现找到错误的最简单方法是通过 Report Navigator。

      1. View -> Navigators -> Show Report Navigator 或直接按⌘-8
      2. 单击左侧窗格中的构建。
      3. 单击警告旁边的详细信息图标。

      1. 在警告描述中查找对象 ID。

      1. 转到文件并搜索 ⌘-f 以获取对象 ID。

      1. 修复问题。 Automatic Preferred Max Layout Width is not available on iOS versions prior to 8.0

      【讨论】:

        【解决方案5】:

        @Don Eichenseer 的回答很棒。但是对于那些想要解决它的人: 我以前也遇到过同样的问题。问题是因为UILabelLines 属性(在属性检查器中)超过1。找到相关的UILabel后,将其设置为1

        【讨论】:

        • 这不是解决方案。如果要求标签是多线怎么办。
        • 是的,这不是一个绝对的解决方案。它用于不需要多行的标签。
        【解决方案6】:

        正如that post 中所说,你也可以使用这个正则表达式

        【讨论】:

          【解决方案7】:

          这是查找导致此警告的特定标签的一种方法:

          1. 右键单击警告并选择“在日志中显示”
          2. 日志中的警告将突出显示。复制此标签的界面构建器对象 ID(它看起来像 xxx-xx-xxx)。
          3. 将其粘贴到查找导航器中。当您单击此结果时,它将打开界面构建器,并选择了违规标签。

          【讨论】:

          • 虽然这不是理想且不直观的东西,但我认为这是目前唯一的方法。谢谢。
          • 'Reveal in Log' 在 Xcode 6.2 (6C131e) 中似乎没有做任何事情,至少在我正在使用的这个 .xcworkspace 中。 :(
          • @taber 是的,在 6.2 中它也没有为我做任何事情
          • 如果您已经修复了警告,您可能需要清理项目以使其消失。
          【解决方案8】:

          这是来自集合视图的警告吗?如果是这样,我猜它是一个单元格和一个行数设置为零的标签。

          【讨论】:

          • 不,这是一个常规标签。我找到了(有多个)。但是找出问题的原因会适得其反。
          猜你喜欢
          • 2014-10-13
          • 2015-07-11
          • 2015-12-19
          • 2014-10-05
          • 2015-02-17
          • 2014-10-06
          • 1970-01-01
          • 2016-03-09
          • 2014-10-17
          相关资源
          最近更新 更多