UILabel 의 AttributedText 속성을 이용해서 웹CSS처럼 패딩도 넣을 수 있습니다.
AttibutedText 속성은 코드 뿐만 아니라 인터페이스 빌더를 통해서도 수정 가능합니다.
1. 인터페이스 빌더를 통해서 UILabel 패딩(Padding) 넣기
Indent 부분을 봐야 합니다.
First Line 은 라인이 시작되는 첫 번째 행의 간격입니다.
Head 와 Tail 은 각 행의 좌우 간격이됩니다. 단 Head는 텍스트가 Tail에 닿아서 개행됐을 경우 적용됩니다. (즉 Second Line 부터 적용됨)
2. 코드를 통한 구현(programmatically)입니다.
Objective-c
NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.headIndent = 10;
paragraphStyle.tailIndent = -10;
paragraphStyle.firstLineHeadIndent = 10;
self.label.layer.cornerRadius = 15.0;
self.label.backgroundColor = [UIColor lightGrayColor];
self.label.attributedText = [[NSAttributedString alloc] initWithString:@"First Line\nSecond Line------------------------\nThird Line" attributes:@{NSParagraphStyleAttributeName : paragraphStyle}];
Swift
let paragraphStyle = NSMutableParagraphStyle()
paragraphStyle.firstLineHeadIndent = 10
paragraphStyle.headIndent = 10
paragraphStyle.tailIndent = -10
let attributedText = NSAttributedString(string: "First Line\nSecond Line------------------------\nThird Line", attributes: [.paragraphStyle : paragraphStyle])
label.attributedText = attributedText
인터페이스빌더에서 tailIndent 에 음수를 넣을 수 없어서 코드를 통한 구현은 꼭 필요하겠습니다.
3. 결과입니다.
'Mobile > iOS 개발 팁' 카테고리의 다른 글
[iOS/Mac] NSString Url Encode & Decode (인코딩&디코딩) (2) | 2020.02.12 |
---|---|
[iOS] UIView 를 이미지로 저장하기&자르기 (Save & Crop Image to User's Camera roll) (0) | 2020.02.10 |
[iOS] iOS13 Dark Mode 끄기 (User Interface Style) (0) | 2019.11.25 |
[iOS] Fastlane iOS 를 통한 TestFlight 자동빌드 & 자동배포 (1) | 2019.01.29 |
[iOS] Xcode 10 (iOS 12) libstdc++6.0.9 미포함 문제 (0) | 2019.01.22 |