텍스트 옆에 이미지를 붙여보자.
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 |