web-dev-qa-db-ja.com

フォントを縮小するのではなく、UILabelに省略記号を生成させる

UILabelのテキストを動的に変更する場合、テキストを自動的にサイズ変更するのではなく、省略記号(ドット、ドット、ドット)を取得したいと思います。これはどのように行うのですか?

言い換えると、UILabelにWord Catとサイズフォント14がある場合、WordをHippopotamusに変更すると、フォントはすべてのWordに収まるように縮小されます。私はむしろ単語が自動的に省略された後に省略記号が欲しいです。

私のUILabelオブジェクト内で変更できるパラメーターがあると思います。私はこれをプログラムで行うのではなく、.

29
Eric Brotto

次のプロパティを設定します。

label.adjustsFontSizeToFitWidth = NO;
label.lineBreakMode = NSLineBreakByTruncatingTail;

これらのプロパティは、インターフェイスビルダーで設定することもできます。

83
jbat100

Swiftソリューション:

label.lineBreakMode = .ByTruncatingTail

スウィフト3:

label.lineBreakMode = .byTruncatingTail
11
dijipiji

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
2
jake.lange