[英]In Swift, how do I know if words are wrapped in an UILabel
在Swift中,我想知道是否有辦法獲得一個單詞是否被換行。 例如,我有一個 UILabel。
let label = UILabel()
label.text = "Hey! Hello World!"
label.areWordsWrapped()
如果文本顯示如下:
Hey! Hell
o World!
//label.areWordsWrapped() should return true
如果這:
Hey! Hello
World!
//label.areWordsWrapped() should return false
是否有 function 或屬性來實現這一目標?
你可以試試這個,可能不完美
extension UILabel {
func areWordsWrapped()->Bool {
let fontAttributes: [NSAttributedString.Key : Any] = [NSAttributedString.Key.font: self.font!]
let splitText: [String] = self.text!.split {$0 == " "}.map(String.init)
for text in splitText {
let width = text.size(withAttributes: fontAttributes).width
if width > self.frame.width {
return true
}
}
return false
}
}
編輯:
如果您使用字符換行,我認為幾乎可以肯定它會被換行,因為幾乎不可能在沒有輸入/換行的情況下在每一行中具有相同的寬度
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.