Swift, Line Height
Figma로 디자인을 확인하면 폰트쪽에 LineHeight를 정의 해 두는데, 한번도 적용해보지 않은 개념이라, 방법을 찾아보았다.
위와 같은 상태인데, 디자인이 저렇게 나왔으면, 그냥 UILabel을 간격에 맞게 2개 써도 되지 않나? 라고 생각이 될 수도 있다.
그런데 만약에 몇줄이 되어야 하는 상황일지 모른다면?
또 UILabel이 아니라 채팅 서비스에서 몇줄이나 되는 채팅 UITextView 라면?
attributedText
로 적용 가능한 속성 중에 paragraphStyle
에서 Line Height를 일괄로 적용이 가능하다.
let style = NSMutableParagraphStyle()
let fontSize: CGFloat = 20
let lineheight = fontSize * 1.6 //font size * multiple
style.minimumLineHeight = lineheight
style.maximumLineHeight = lineheight
label.attributedText = NSAttributedString(
string: greeting,
attributes: [
.paragraphStyle: style
])
label.font = .systemFont(ofSize: fontSize)
여기서 한가지 고려해봐야 할 부분은, 바운드에 대한 Inset값인데, UILabel 배경색을 입혀보면
텍스트가 아래로 정렬이 된 것을 볼 수 있다.
만약 위로 정렬하고 싶다면
attributes 속성의 baselineOffset 을 이용할 수 있다.
.baselineOffset: (lineheight - fontSize) / 4,
똑같은 방식으로 UITextView
에도 적용된다.
Author And Source
이 문제에 관하여(Swift, Line Height), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hey_hen/Swift-Line-Height저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)