我想知道是否有方法可以確定UILabel
是否爲全文的文字。 例如,如果有尺寸的標籤:如何用文字填充標籤直到達到寬度
| |
我想知道當標籤是全文的,如:
|.........|
我需要填寫其用點直到它達到了textFields的寬度。
我想知道是否有方法可以確定UILabel
是否爲全文的文字。 例如,如果有尺寸的標籤:如何用文字填充標籤直到達到寬度
| |
我想知道當標籤是全文的,如:
|.........|
我需要填寫其用點直到它達到了textFields的寬度。
好吧,如果我這樣做是正確,可能是你在尋找的是標籤intrinsicContentSize:
接收視圖的自然大小,僅考慮屬性視圖本身的 。
標籤intrinsicContentSize
的寬度應該是標籤的實際寬度,無所謂有什麼frame.size.width
值。
此基礎上,你只需執行:
let lbl = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 21))
print(lbl.frame.size.width)
// 150.0
lbl.text = ""
let intrinsicSizeWidth = lbl.intrinsicContentSize.width
// since the label text is still empty, its value should be 0.0
print(intrinsicSizeWidth)
while lbl.intrinsicContentSize.width < lbl.frame.size.width {
lbl.text?.append(".")
}
print(lbl.text!)
// ................................
請注意,增加您的標籤寬度將導致包含更多的點:
let lbl = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 21))
.
.
.
print(lbl.text!)
// ...........................................
顯然,如果你想將其與比較UITextField
- 例如(如你在問題中提到的),它應該是:
// "textField" the name of your text field...
while lbl.intrinsicContentSize.width < textField.frame.size.width {
lbl.text?.append(".")
}
創建框架和默認的文本
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 100))
label.text = ""
填充文本與圓點標記,直到文本的寬度達到標籤的寬度
while label.sizeThatFits(label.frame.size).width <= label.frame.width {
label.text = label.text! + "."
}
你可以得到標籤寬度和文本寬度(通過https://stackoverflow.com/q/1324379/2442804)並比較兩者 – luk2302