NSUnderlineStyle에서 UILabel에 밑줄을 그린 결과 요약
개요
NSUnderlineStyle을 사용하여 UILabel에 밑줄을 그린 결과의 표시 내용이 어디에도 정리되지 않았기 때문에, 가볍게 정리해 보았습니다.
잡잡한 샘플이지만 뭔가 도움이된다면.
검증 코드
override func viewDidLoad() {
super.viewDidLoad()
let single = NSUnderlineStyle.styleSingle.rawValue
let thick = NSUnderlineStyle.styleThick.rawValue
let double = NSUnderlineStyle.styleDouble.rawValue
let dot = NSUnderlineStyle.patternDot.rawValue
let dash = NSUnderlineStyle.patternDash.rawValue
let dashDot = NSUnderlineStyle.patternDashDot.rawValue
let dashDotDot = NSUnderlineStyle.patternDashDotDot.rawValue
let word = NSUnderlineStyle.byWord.rawValue
addUnderLine(label: singleDot, setValue: single | dot)
addUnderLine(label: singleDash, setValue: single | dash)
addUnderLine(label: singleDashDot, setValue: single | dashDot)
addUnderLine(label: singleDashDotDot, setValue: single | dashDotDot)
addUnderLine(label: thickDot, setValue: thick | dot)
addUnderLine(label: thickDash, setValue: thick | dash)
addUnderLine(label: thickDashDot, setValue: thick | dashDot)
addUnderLine(label: thickDashDotDot, setValue: thick | dashDotDot)
addUnderLine(label: doubleDot, setValue: double | dot)
addUnderLine(label: doubleDash, setValue: double | dash)
addUnderLine(label: doubleDashDot, setValue: double | dashDot)
addUnderLine(label: doubleDashDotDot, setValue: double | dashDotDot)
addUnderLine(label: byWord, setValue: thick | word)
}
private func addUnderLine(label: UILabel, setValue: Int) {
let attributeText = NSMutableAttributedString(string: label.text!)
attributeText.addAttribute(.underlineStyle, value: setValue, range: NSMakeRange(0, label.text!.count))
label.attributedText = attributeText
}
결과
보충 (환경)
override func viewDidLoad() {
super.viewDidLoad()
let single = NSUnderlineStyle.styleSingle.rawValue
let thick = NSUnderlineStyle.styleThick.rawValue
let double = NSUnderlineStyle.styleDouble.rawValue
let dot = NSUnderlineStyle.patternDot.rawValue
let dash = NSUnderlineStyle.patternDash.rawValue
let dashDot = NSUnderlineStyle.patternDashDot.rawValue
let dashDotDot = NSUnderlineStyle.patternDashDotDot.rawValue
let word = NSUnderlineStyle.byWord.rawValue
addUnderLine(label: singleDot, setValue: single | dot)
addUnderLine(label: singleDash, setValue: single | dash)
addUnderLine(label: singleDashDot, setValue: single | dashDot)
addUnderLine(label: singleDashDotDot, setValue: single | dashDotDot)
addUnderLine(label: thickDot, setValue: thick | dot)
addUnderLine(label: thickDash, setValue: thick | dash)
addUnderLine(label: thickDashDot, setValue: thick | dashDot)
addUnderLine(label: thickDashDotDot, setValue: thick | dashDotDot)
addUnderLine(label: doubleDot, setValue: double | dot)
addUnderLine(label: doubleDash, setValue: double | dash)
addUnderLine(label: doubleDashDot, setValue: double | dashDot)
addUnderLine(label: doubleDashDotDot, setValue: double | dashDotDot)
addUnderLine(label: byWord, setValue: thick | word)
}
private func addUnderLine(label: UILabel, setValue: Int) {
let attributeText = NSMutableAttributedString(string: label.text!)
attributeText.addAttribute(.underlineStyle, value: setValue, range: NSMakeRange(0, label.text!.count))
label.attributedText = attributeText
}
결과
보충 (환경)
감상
기본적으로는 예상대로의 밑줄 부여 결과가 되었지만 상당히 문자와 가까운 상태로 선이 그려져 버리므로, 1dot의 view등을 사용해 의사적으로 스스로 선을 그리는 것이 좋을지도 모릅니다 응.
byWord에 관해서는, 스페이스 부분을 무시해 준다고 하는 특성은 스스로 실장하면 조금 번거롭기 때문에 도움이 될 것 같습니다.
Reference
이 문제에 관하여(NSUnderlineStyle에서 UILabel에 밑줄을 그린 결과 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/m_orishi/items/ce65d60ea9b47bfcddf3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(NSUnderlineStyle에서 UILabel에 밑줄을 그린 결과 요약), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/m_orishi/items/ce65d60ea9b47bfcddf3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)