我的应用使用自定义单元格在tableview中显示产品。在iPhone 5上使用时的产品名称是在结束时运行,因此我将其设置为包装 这不起作用。使用下面的代码在我的Customcell类中填充每个单元格,我在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 to 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仍然没有包装
答案 0 :(得分:3)
当您将iOS 6定位到8或更高版本时,您必须在UILabel上显式设置preferredWidth属性。如果标签有多行,则必须这样做。另请参阅preferredMaxLayoutWidth:
所以你只需要指定这个值(在大多数情况下,最好去故事板,点击标签,转到"尺寸检查器"然后点击&# 39;明确'旁边"首选宽度")。
答案 1 :(得分:0)
在Size Inspector中检查Follow Readable Width
并设置更大的高度,对我来说有用!