我有一個UILabel,其文本通過-setAttributedText:
動態設置。NSAttributedString包含各種動態屬性,即不同字體或不同範圍的字符。 UILabel的寬度受到限制(通過自動佈局),高度可變(numberOfLines = 0)。具有固定寬度和NSAttributedString的UILabel的渲染線數
我需要確定的是在給定NSAttributedString和width約束條件下呈現的文本行數。
請注意,我不在尋找標籤的高度,我正在尋找渲染線條的數量。另請注意,我無法執行基於font.lineHeight的任何計算,因爲字體在整個NSAttributedString中都不相同。
對於一些背景,對於有兩行或更多行的標籤,對於有1行的標籤和label.textAlignment=NSTextAlignmentLeft
,設置label.textAlignment=NSTextAlignmentCenter
。在自動佈局和UILabel完成其業務之後,我會在-[UIViewController viewDidLayoutSubviews]
中執行此操作。或者也許有更簡單的方法來實現相同的目標。
提供某種解釋會幫助別人理解。 –