15

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

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

4

8 回答 8

38

Here is one way to find the specific label that is causing this warning:

  1. Right click on the warning and choose "Reveal in Log"
  2. The warning in the log will be highlighted. Copy the interface builder object ID for this label (it looks like xxx-xx-xxx).
  3. Paste this in the Find Navigator. When you click on this result it will open the interface builder with the offending label selected.
于 2015-01-27T20:53:26.787 回答
12

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

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

在此处输入图像描述

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

在此处输入图像描述

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

在此处输入图像描述

  1. 修复问题。自动首选最大布局宽度在 8.0 之前的 iOS 版本中不可用
于 2015-04-30T15:09:06.427 回答
2

该帖子所述,您还可以在情节提要源代码中使用此正则表达式 <label(?!.*preferredMaxLayoutWidth)来查找所有未设置 preferredMaxLayoutWidth 的标签。然后纠正它。

于 2015-03-25T08:08:49.220 回答
2

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

于 2015-03-27T10:26:17.093 回答
2

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

[label setNumberOfLines:2];
于 2015-09-03T08:19:11.457 回答
1

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

于 2014-11-13T23:40:26.107 回答
0

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

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

在此处输入图像描述

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

在此处输入图像描述

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

于 2016-03-01T13:11:34.917 回答
0

我必须切换到 XCode 6.2 --> 单击主 XCode 区域右上角的警告图标 --> 选择警告 --> 它准确显示导致警告的项目。 在此处输入图像描述

于 2016-04-13T08:45:03.843 回答