-
TextView 라인 수 구하기iOS 2020. 3. 16. 19:07728x90
TextView는 TextField 와 달리 여러 줄의 텍스트를 입력할 수 있습니다.
하지만 따로 라인 수를 제공하지는 않죠... 라인 수를 알고 싶다면 직접 계산해서 구해야 합니다 ㅠㅠ
급하신 분들을 위해 결론부터 말씀드리겠습니다. extension으로 만들어봤어요 :)
extension UITextView { func numberOfLine() -> Int { let size = CGSize(width: frame.width, height: .infinity) let estimatedSize = sizeThatFits(size) return Int(estimatedSize.height / (self.font!.lineHeight)) } }
기본 UITextView는 contentSize나 textContainer 의 높이를 textView.font?.lineHeight 로 나눠서 구해도 되는 것 같습니다.
굳이 estimatedSize로 계산한 이유는 왜인지 MDCTextInputControllerUnderline 를 사용할 때는 문제가 발생하더라구요...
단순히 contentSize나 textContainer를 사용하면 엔터를 한 번 쳐서 두 줄이 됐는데 2줄의 높이로 나오고..
다시 1줄로 바꾸면 2줄 높이로 나오고... 제대로 높이가 계산되지 않더라구요 ㅠㅠㅠㅠ
저렇게 estimatedSize를 사용하는게 안전한 방법인 것 같습니다.
이번엔 방법만 알아보고 자세한 설명은 다음 포스팅에서 해보겠습니다.
이제부터 뜯어보려고 하거든요 :)
감사합니다!
'iOS' 카테고리의 다른 글
Swipe Gesture 와 Pan Gesture 함께 쓰기, Gesture Recognizer simultaneously (0) 2020.04.10 info.plist 파일 옮기기 (0) 2020.04.04 Bundle (0) 2020.03.13 Protocol에서 Optional 선언 (0) 2020.03.04 포토샵, 일러스트 웹, 앱용 이미지 @2x @3x 변환 (0) 2020.03.03