自动换行不适用于我的 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
并设置更大的高度,帮我做到了!
我的应用使用自定义单元格在表格视图中显示产品。在 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
并设置更大的高度,帮我做到了!