簡體   English   中英

MultiLine UIlabel不會顯示所有文本嗎?

[英]MultiLine UIlabel doesn't show all text?

我想使用它的行屬性的uilabel數字顯示每個文本的標簽大小。

lbl.numberoflines = 0;

但是它只顯示三行,之后顯示...。 並非所有文字都顯示。

當我給出的行數大於3時,它將在標簽中顯示該行。

感謝幫助

嘗試這個

lbl.lineBreakMode = UILineBreakModeWordWrap;

lbl.numberOfLines = 0;

如果要手動計算高度

 lbl.numberOfLines = 0; // allows label to have as many lines as needed
lbl.text =@"xxxxxxxxxxxxxxxxxxxxxx";
CGSize labelSize = [ lbl.text sizeWithFont: lbl.font constrainedToSize:CGSizeMake(300, 300)  lineBreakMode:NSLineBreakByWordWrapping];

// set the frame of labels here 

否則你可以直接放在屬性

在此處輸入圖片說明

swift3

lbl.lineBreakMode = .byWordWrapping
lbl.numberOfLines = 0

// allows label to have as many lines as needed
lbl.text = "xxxxxxxxxxxxxxxxxxxxxx"
var labelSize = lbl.text.size(with: lbl.font, constrainedToSize: CGSize(width: 300, height: 300), lineBreakMode: .byWordWrapping)
// set the frame of labels here  }

因此我將numberOfLines設置為0,並將lineBreakMode設置為WordWrap,並且也設置了適當的約束。

起作用的是將首選寬度設置從顯式更改為自動。 即從這個:

在此處輸入圖片說明

為此:

在此處輸入圖片說明

嘗試這個

lbl.lineBreakMode = UILineBreakModeWordWrap;
lbl.numberOfLines = 0;
[lbl sizeTofit];

使用此方法。 可能有幫助

-(CGSize)getLabelSize:(NSString *)text
{

    UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:14.0];
    CGSize constraintSize = CGSizeMake(300.0f, MAXFLOAT);
    CGSize labelSize = [text sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
    return labelSize;

}

所有答案可能會有所幫助。 但使用舊方法。

您不能在視圖中添加約束嗎?

設置布局約束確實很容易,然后就可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM