2017-12-11 32 views
0

어떤 상황에서는 UILabel 대신 UITextView를 사용해야합니다 (링크 속성을 클릭 할 수있게 만들기 위해). "..."UITextView.attributedText, numberOflines 및 lineBreakMode를 설정하는 방법은 무엇입니까?

에 의해

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 속성이 작동하지 않습니다 그것은 단지 한 라인을 표시하고 다음 : 다음은 내 코드입니다 :

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

그리고 여기 내 텍스트 뷰입니다

enter image description here

+1

BKLinkTextView는 필수입니까? – Nirmalsinh

+0

@Nirmalsinh 죄송합니다, 이것은 BKLinkTextView와 아무 관계가 없으므로 UITextView로 대체하고 문제는 여전히 존재합니다. – Maize

+0

그런 다음 UILabel을 사용해보십시오. 더 적합하고 유용 할 것입니다. – Nirmalsinh

답변

0

lineBreakMode을 자르지 않는 값으로 설정해야합니다.

내가 linespacing 속성을 설정할 때 UITextView.sizeToFit 의해 computered 크기()가 1 개 라인만큼보다 표시하는 높이가 아니다

paragraphStyle.lineBreakMode = .byWordWrapping 
+0

그런 다음 텍스트 뒤에 "..."이 없으며 필자의 요구 사항은 여러 줄을 표시하고 마지막 줄에 "..."을 붙입니다. – Maize

0

보십시오. 그러나 UILabel에서 sizeToFit을 호출하면 컴퓨터가 원하는만큼 더 많은 선을 표시 할 수있는 적절한 높이가됩니다.