UILabelのテキストを動的に変更する場合、テキストを自動的にサイズ変更するのではなく、省略記号(ドット、ドット、ドット)を取得したいと思います。これはどのように行うのですか?
言い換えると、UILabelにWord Cat
とサイズフォント14がある場合、WordをHippopotamus
に変更すると、フォントはすべてのWordに収まるように縮小されます。私はむしろ単語が自動的に省略された後に省略記号が欲しいです。
私のUILabelオブジェクト内で変更できるパラメーターがあると思います。私はこれをプログラムで行うのではなく、.
次のプロパティを設定します。
label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;
これらのプロパティは、インターフェイスビルダーで設定することもできます。
Swiftソリューション:
label.lineBreakMode = .ByTruncatingTail
スウィフト3:
label.lineBreakMode = .byTruncatingTail
UILabelのスタイルを設定し、UILabel.attributedText
ではなくUILabel.text
を使用する必要があると、Ellipsisの生成に問題が発生しました。段落スタイルには、属性付きテキストを使用するときにUILabel.lineBreakMode
を上書きする改行モードがあります。省略記号を実現するには、属性付き文字列の段落スタイルでlineBreakMode
を.byTruncatingTail
に設定する必要があります。
例えば.
let attributedString = NSMutableAttributedString(string: "example long string", attributes: [...])
let textRange = NSRange(location: 0, length: textString.length)
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.lineBreakMode = .byTruncatingTail
textString.addAttribute(.paragraphStyle, value: paragraphStyle, range: textRange)
uiLabel.attributedText = attributedString