2017-12-11 21 views
0

いくつかの条件では、UILabelの代わりにUITextViewを使用する必要があります(リンク属性をクリック可能にするため)。ここ は私のコードです:UITextView.attributedText、numberOflinesとlineBreakModeの設定方法は?

let attributedString = NSMutableAttributedString(string: "TestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTestTest") 
    let paragraphStyle = NSMutableParagraphStyle() 
    paragraphStyle.lineBreakMode = .byTruncatingTail 
    attributedString.addAttribute(.paragraphStyle, value: paragraphStyle, range: NSMakeRange(0, attributedString.length)) 

そして、ここでは私のTextViewです:

private lazy var titleTextView: UITextView = { 
    let view = UITextView(frame: .zero, textContainer: nil) 
    view.isEditable = false 
    view.textContainerInset = .zero 
    view.textContainer.lineFragmentPadding = 0 
    view.textContainer.maximumNumberOfLines = 2  // Set numberOflines here! 
    view.textAlignment = .left 
    view.isScrollEnabled = false 
    view.delegate = self 

    return view 
}() 

しかしmaximumNumberOfLinesプロパティが動作しない、それだけで1行を表示し、

"..." に続きます

enter image description here

+1

BKLinkTextViewは必須ですか? – Nirmalsinh

+0

@Nirmalsinh申し訳ありませんが、これはBKLinkTextViewとは関係がないので、私はUITextViewで置き換え、問題はまだ存在しています。 – Maize

+0

それからUILabelを使ってみてください。より適切で有用なものになります。 – Nirmalsinh

答えて

0

lineBreakModeを切り捨てない値に設定する必要があります。

iはlinespacingプロパティを設定すると、UITextView.sizeToFit(によってcomputeredサイズ)が十分に1本の以上のラインを表示する高さではない。

paragraphStyle.lineBreakMode = .byWordWrapping 
+0

それから、テキストには "..."が続きません。私の要件は複数の行を表示し、最後の行に "..."を続けて表示することです。 – Maize

0

を試します しかし、UILabelでは、sizeToFitを呼び出すと、必要な行数を表示するのに適切な高さになります。

関連する問題