自动换行不适用于我的 UILabel

Word wrap not working on my UILabel

我的应用使用自定义单元格在表格视图中显示产品。在 iPhone 5 上使用的产品名称末尾是 运行,所以我将其设置为换行 这是行不通的。每个单元格都使用下面的代码填充在我的 Customcell class 中,我在 brandTxt 标签中添加了几行,但仍然不起作用。

public func configure(#text: String?, placeholder: String) {
    if (placeholder == "1")
    {
        brandItemLabel.text = text
        brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
        brandItemLabel.numberOfLines = 2
    }
    else if (placeholder == "2")
    {
        brandSmallLabel.text = text

    }
    else if (placeholder == "3")
    {
        uomCodeLabel.text = text

    }
    else if (placeholder == "4")
    {
        codeLabel.text = text

    }
    else if (placeholder == "6")
    {
        var image = UIImage(named: "Blank.jpg")
        if let url = NSURL(string: text!) {
            if let data = NSData(contentsOfURL: url) {
                image = UIImage(data: data)
            }
        }
        var imgViewLbl = UIImageView(image: image) as UIImageView
        imgViewLbl.frame = CGRect(x: 10, y: 4, width: 90, height: 90)
        customView.addSubview(imgViewLbl)
    }
}

我也尝试过使用约束,但这也不起作用

我已经使用 preferredMaxLayoutWidth 添加了下面的代码,并在 Size Manager 中将 Preferred Width 设置为 Explicit,并添加了 Constraints 以设置大小和高度以及位置。

public func configure(#text: String?, placeholder: String) {
    if (placeholder == "1")
    {
        brandItemLabel.text = text
        brandItemLabel.lineBreakMode = NSLineBreakMode.ByWordWrapping
        brandItemLabel.numberOfLines = 2
        brandItemLabel.preferredMaxLayoutWidth = 330
    }

尽管进行了这些更改,UILabel 仍未换行

如果您的目标是 iOS 6 至 8 或更高,您必须在 UILabel 上明确设置 preferredWidth 属性。如果标签不止一行,则必须这样做。另见 preferredMaxLayoutWidth:

所以你只需要指定这个值(在大多数情况下最好去故事板,点击标签,去"Size Inspector"然后点击'explicit'旁边的"Preferred Width").

在 Size Inspector 中检查 Follow Readable Width 并设置更大的高度,帮我做到了!