UILabel 의 AttributedText 속성을 이용해서 웹CSS처럼 패딩도 넣을 수 있습니다.

AttibutedText 속성은 코드 뿐만 아니라 인터페이스 빌더를 통해서도 수정 가능합니다.

 

1. 인터페이스 빌더를 통해서 UILabel 패딩(Padding) 넣기

Label의 Text 기본 속성은 Plain 입니다. Attributed 로 바꿉니다.
이제 더보기 메뉴를 통해서 추가되는 텍스트에 대해서 다양한 속성을 적용할 수 있습니다.

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. 결과입니다.

 

 

+ Recent posts