UILabel의 text에 넣은 기호가 이모티콘으로 바뀌는 것을 방지
UILabel의 text에 특정의 기호를 넣으면 이모티콘화해 버린다
UILabel의 text에 ❤(하트)나 ☎(전화)등의 특정의 기호를 세트 해 표시하면, 이모티콘으로서 표시되어 버리는 일이 있습니다.
시험에 카드 놀이의 표시를 텍스트로 설정하면 ...
let label: UILabel = ...
label.text = "♠♣❤♦"
이렇게 이모티콘이 되어 버립니다.
이모티콘을 피하십시오.
단순히 기호로서 표시하고 싶은 경우는 이하와 같이, 기호 문자의 뒤에
\u{FE0E}
를 추가해 줍니다.let label: UILabel = ...
// 1文字の場合
label.text = "♠\u{FE0E}"
// 複数ある場合はmapとか使うと楽かも
label.text = "♠♣❤♦".characters.map { "\($0)\u{FE0E}" }.joined(separator: "")
이제 이모티콘으로 변하지 않고 표시할 수 있습니다.
"\u{FE0E}"는 일체
기호 뒤에 붙은
\u{FE0E}
는, Variation Selector (이자체 셀렉터)라고 하는 것의 하나입니다.어떤 문자가 텍스트 스타일, 이모티콘 스타일 모두가 될 수 있는 경우에
\u{FE0E}
를 부여해 주면(자) 텍스트 스타일로서 표시시킬 수가 있습니다.반대로 이모티콘으로 표시하고 싶을 때는
\u{FE0F}
를 부여해 주면 이모티콘으로 표시시킬 수 있습니다.let label: UILabel = ...
label.text = "Ⓜ\u{FE0E} → Ⓜ\u{FE0F}"
다만, 문자에 따라서는 부여하는 것으로 문자화할 가능성도 있으므로 주의가 필요합니다.
자세한 내용은 위키을 참조하십시오.
덤
Playground에서 시도 할 수있는 코드를 준비했습니다. 1.5초 후에 이모티콘이 되어 버린 기호가 보통 기호로 돌아가게 되어 있습니다.
import PlaygroundSupport
import Foundation
import UIKit
PlaygroundPage.current.needsIndefiniteExecution = true
let view = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 50))
let label = UILabel(frame: .zero)
label.text = "♠♣❤♦"
label.backgroundColor = .white
label.sizeToFit()
view.addSubview(label)
PlaygroundPage.current.liveView = view
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
label.text = "♠♣❤♦".characters.map { "\($0)\u{FE0E}" }.joined(separator: "")
label.sizeToFit()
}
Reference
이 문제에 관하여(UILabel의 text에 넣은 기호가 이모티콘으로 바뀌는 것을 방지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sgr-ksmt/items/6bed18938106b57f5e26텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)