0
我有以下代碼來設置一個UILabel:當設置爲自動換行如何獲得的UILabel文本的實際寬度
let label = UILabel()
label.numberOfLines = 0
label.textAlignment = .center
label.lineBreakMode = .byWordWrapping
label.preferredMaxLayoutWidth = maxWidth
label.text = "String that is long enough to cause word wrap."
label.sizeToFit()
self.view.addSubview(label)
,我需要的是爲標籤自動換行,因爲它會結果一旦達到label.preferredMaxLayoutWidth
,然後實際上將自己的大小足夠寬以適應包裝文本。下面是一個圖解說明:
紅框的寬度等於label.preferredMaxLayoutWidth
,這就是我用上面的代碼得到的實際大小。 黑盒子是我希望它的大小。 無論標籤的大小是紅色還是黑色,換行字都是一樣的。
那麼,如何在保持當前文字換行的同時將我的標籤大小調整爲儘可能小的寬度?
編輯:
雖然限制可能是通常的選擇,在我的情況,我不認爲這是因爲我根據所得到的這個標籤的尺寸大小我的上海華。
您是否在尋找[平空間(http://www.thedesigncubicle.com/2008/12/tiny-tutorial-improve -justified型的設置/)? (請參閱*添加刷新空間部分*) – paulvs
使用'NSString boundingRectWithSize:options:attributes:context:'(或String的Swift等效項)來獲取所需的字符串大小。 – rmaddy
@paulvs不,我不認爲這是說同樣的事情。 –