본문 바로가기

iOS

[iOS] UILabel에 취소선 (strikethroughStyle) 적용하기

UILabel에 취소선 적용하기

Apple Developer - UILabel.attributeText

Apple Developer - NSAttributeString

Apple Developer - NSMutableAttributedString

 

UILabel의 text에 속성(attribute)를 적용시키려면 UILabel에 있는 attributeText 프로퍼티를 변경해주면 된다.

그런데 attributeText 프로퍼티는 NSAttributedString 클래스 타입의 값으로 이에 맞는 값을 만들어 적용해야 한다.

실제 코드에서 어떻게 만들면 되는지 알아보자

 

적용하기

let testLabel: UILabel = {
  let label = UILabel()
  let label.text = "test Label입니다"

  return label
}()

UILabel 타입의 testLabel이 있다.

 

여기에 testLabel의 attributedText 프로퍼티를 변경하기 위해서 NSAttributedString 타입의 값을 만들어준다.

이 글의 목적은 취소선을 구현하는 것이므로 strikethroughStyle을 이용한다.

 

if let text = testLabel.text {
  let attributeString = NSMutableAttributedString(string: testLabel.text)

  attributeString.addAttribute(.strikethroughStyle,
                                value: NSUnderlineStyle.single.rawValue,
                                range: NSMakeRange(0, attributeString.length))

  testLabel.attributedText = attributeString
}