Notice
Recent Posts
Recent Comments
Link
study record
[iOS] iOS TextView 행간, 자간 조절하기 본문
// 먼저 행간 조절 스타일 설정
let style = NSMutableParagraphStyle()
style.lineSpacing = 10
let attributedString = NSMutableAttributedString(string: textView.text)
// 자간 조절 설정
attributedString.addAttribute(NSAttributedString.Key.kern, value: CGFloat(2.0), range: NSRange(location: 0, length: attributedString.length))
// 행간 스타일 추가
attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value: style, range: NSRange(location: 0, length: attributedString.length))
// TextView에 세팅
textView.attributedText = attributedString
extension으로 정리한 버전
import Foundation
import UIKit
extension UITextView {
func setLineAndLetterSpacing(_ text: String){
let style = NSMutableParagraphStyle()
// 행간 세팅
style.lineSpacing = 5
let attributedString = NSMutableAttributedString(string: text)
// 자간 세팅
attributedString.addAttribute(NSAttributedString.Key.kern, value: CGFloat(0), range: NSRange(location: 0, length: attributedString.length))
attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value: style, range: NSRange(location: 0, length: attributedString.length))
self.attributedText = attributedString
}
}
NSAtributedString
string과 연관된 속성들(시각적 스타일, 하이퍼링크, 데이터 접근성 등)
NSAttributedString 객체는 문자열을 관리하고 연관된 속성들(문자 하나 그리고 문자열 안의 문자들과 관련된 속성들)을 관리한다.
NSMutableParagraphStyle
NSParagraphStyle을 상속 받아서 메소드들이 더해진 클래스이다. paragraph style 속성 값들을 바꾸는데 사용된다.
속성을 추가하고나서 paragraph style을 변경하면 안 된다. 변경하게 되면 앱에 크래시가 야기될 수 있다.
'iOS > iOS 정리' 카테고리의 다른 글
[iOS] AppDelegate, SceneDelegate (0) | 2022.03.10 |
---|---|
[iOS] 왜 GCD(Grand Central DispatchQueue)를 사용하는가? (0) | 2022.03.07 |
[iOS] 스냅킷(SnapKit) inset과 offset (0) | 2022.03.01 |
[iOS] iOS 앱 상태변화 iOS Application States (0) | 2022.02.24 |
[iOS] 코드로 네비게이션 컨트롤러 설정 및 Rx 버튼클릭 이벤트( 화면 전환 ) (0) | 2022.02.16 |