【问题标题】:[UILabel length]: unrecognized selector sent to instance after using AutoLayout[UILabel 长度]:使用 AutoLayout 后发送到实例的无法识别的选择器
【发布时间】:2015-04-24 16:27:53
【问题描述】:

我有一个带有自定义单元格的表格视图,其中包含多个视图,一个在另一个之上,其中一个是使用 XIB 文件实例化的。在那个 XIB 文件中,我有一个 UIImage 和两个封装在 UIView 中的 UILabel。我已经弄清楚这是我异常的根源,但我不明白为什么。 如果我在标签上设置硬编码(而不是相对)约束,即固定宽度和高度,它可以工作。

我正在附加一个显示约束的打印屏幕。请注意,在大多数约束中,常量 = 0,否则在文档大纲的括号中说明。此外,标签的高度是其容器高度的 0.5。

任何关于它为什么崩溃的线索?

【问题讨论】:

    标签: xcode6 autolayout


    【解决方案1】:

    刚刚遇到并为我解决了这个问题。我们在 UIView 中有一个 UILabel,这个 UILabel 的出口被称为title。当我们要求我们的单元格“layoutIfNeeded”时,我们得到了UILabel length 异常。 UIView 上的 -viewForBaselineLayout 方法提到了标题这个词。

    我们改变了出口,所以它被称为“cellTitle”(除了“title”之外的任何东西),这个崩溃就消失了。

    您可以尝试更改您的分店名称吗?

    【讨论】:

    • 谢谢!你省去了我几个小时的调试时间:)
    • 伟大的收获,你节省了我的时间和脑细胞!非常感谢!
    • 只有iOS8版本才会出现。
    【解决方案2】:

    确保您使用的是静态表。如果您随后将方法删除为 heightForFooterRow

    确保您自动布局、重置所有内容并构建应用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2015-03-02
      • 2015-09-09
      • 2014-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多