본문 바로가기
짤막 TlL

NSTextAttachment

by 방우 2022. 7. 30.

텍스트 옆에 이미지를 붙여보자.

NSTextAttachment

속성 문자열과 관련 객체의 첨부 특성에 대한 값

NSMutableAttributedString

텍스트의 일부에 대한 관련 속성(예: 시각적 스타일, 하이퍼링크 또는 접근성 데이터)이 있는 변경 가능한 문자열.

  • "안녕하세요 저는 방우입니다."에서 방우는 초록색 문자열이다. 그럼 label의 색을...어떻게 줘야햐지? 라는 고민이 생긴다.
  • 이렇게 특정 문자열의 특성을 바꿔줄 수 있는 클래스 타입이라고 생각하며 될 것 같다.

 

let label: UILabel = {
    let label = UILabel()
    let attributedString = NSMutableAttributedString(string: "첫번째 문장")
    let imageAttachment = NSTextAttachment()
    imageAttachment.image = UIImage(systemName: "star.fill")
    imageAttachment.bounds = CGRect(x: 0, y: 0, width: 15, height: 15)
    attributedString.append(NSAttributedString(attachment: imageAttachment))

    label.attributedText = attributedString
    return label
}()

그리고

뷰디드로드 안에
이렇게 화면상 반영을 해줘야한다. 이걸 안해서 1시간 동안 헤맸다...
testLabel.attributedText = label.attributedText

 

위의 코드에서 더 공부해야할 내용이 많지만 흐름을 따라가보자면


먼저 NSMutableAttributedString 타입을 채택해 문자에 이미지를 붙여줄 수 있는 상태로 만들고
이미지를 텍스트에 붙일 수 있는 형식으로 감싼 뒤 크기를 지정해주고,
텍스트가 String으로 배열 속성을 가지니가 append해서 뒤에 붙여준 것 같다.


(개인적으로 NSMutableAttributedString 잘 쓰면 문자열을 좀더 다이나믹하게 보여줄 수 있을 것 같다.)

 

 

참고블로그

'짤막 TlL' 카테고리의 다른 글

반복주의(Cell 재사용, while)  (0) 2022.08.04
identifier 편하게 쓰기(feat. 메타타입)  (0) 2022.08.01
TextView Placeholder  (0) 2022.07.30
키보드 내리기  (0) 2022.07.30
delegate  (0) 2022.07.29