查找“自动首选最大布局宽度”在8.0之前的iOS版本上不可用的原因

时间:2014-11-13 23:34:12

标签: xcode interface-builder xcode6 xcode6.1

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

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

8 个答案:

答案 0 :(得分:38)

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

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

答案 1 :(得分:11)

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

  1. View - > Navigators - > Show Report Navigator或只需按⌘-8
  2. 即可
  3. 点击左侧窗格中的版本。
  4. 单击警告旁边的详细信息图标。
  5. enter image description here

    1. 在警告说明中找到对象ID。
    2. enter image description here

      1. 转到该文件并在⌘-f中搜索对象ID。
      2. enter image description here

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

答案 2 :(得分:2)

that post中所述,您也可以使用此正则表达式 故事板源中的< label(?!。* preferredMaxLayoutWidth),用于查找未设置preferredMaxLayoutWidth的所有标签。然后纠正它。

答案 3 :(得分:2)

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

答案 4 :(得分:2)

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

.some{
 overflow-y:auto;  
 overflow-x:hidden;
 width : 40%;
}

答案 5 :(得分:1)

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

答案 6 :(得分:0)

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

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

enter image description here

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

enter image description here

并且警告将在我的情况下消失: - )

答案 7 :(得分:0)

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