I UILabel의 설정하려면 다음 코드가 있습니다어떻게 UILabel의 텍스트의 실제 폭을 얻을 수
let label = UILabel()
label.numberOfLines = 0
label.textAlignment = .center
label.lineBreakMode = .byWordWrapping
label.preferredMaxLayoutWidth = maxWidth
label.text = "String that is long enough to cause word wrap."
label.sizeToFit()
self.view.addSubview(label)
나는 그것이처럼 레이블 텍스트를 포장하는 것입니다 필요한 결과를 일단 label.preferredMaxLayoutWidth
에 도달하면 실제 포장 된 텍스트에 맞게 충분히 넓게 조정됩니다. 여기에 설명 할 다이어그램이 있습니다 :
빨간색 상자의 너비는 label.preferredMaxLayoutWidth
과 같으며 이것이 위의 코드에서 얻은 실제 크기입니다. 블랙 박스는 내가 좋아할만한 크기입니다. 레이블의 크기가 빨간색인지 검은 색인지에 관계없이 단어 줄 바꿈이 동일합니다.
그래서 현재 단어 줄 바꾸기를 유지하면서 가능한 가장 작은 너비로 라벨의 크기를 조정할 수 있습니까?
편집 :
제약은 일반적인 옵션이 될 수도 있지만, 내 경우, 나는이 라벨의 결과 크기에 따라 내 수퍼 크기를 조정하고 있기 때문에 생각하지 않습니다.
당신이 [플러시 공간 (찾고 계십니까 http://www.thedesigncubicle.com/2008/12/tiny-tutorial-improve -justified-type-settings /)? (* 플러쉬 스페이스 추가하기 섹션을 참조하십시오.) – paulvs
문자열의 필요한 크기를 얻기 위해 NSString boundingRectWithSize : options : attributes : context :'(또는'String'을위한 Swift와 동등한 것)을 사용하십시오. – rmaddy
@paulvs 아니, 나는 그것이 같은 것을 말하고 있다고 생각하지 않는다. –