如何在UILabel iOS中显示表情符号

时间:2014-05-15 06:39:51

标签: objective-c ios7 uilabel emoji

我必须在UILabel中轻松地显示textview文本。

UILabel -

lbl.text = @"Happy to help you \U0001F431;
它表现得很好。

UITextView -

我尝试在字符串中转换UITextView文本,然后记录为 -

%F0%9F%99%88%F0%9F%99%89%F0%9F%99%8A

如何编码我可以在UILabel中显示的内容,有人请建议我。

5 个答案:

答案 0 :(得分:46)

您可以使用⌃ ⌘ Space快捷方式显示符号面板,只需插入您正在寻找的表情符号,而无需使用unicode:

lbl.text = @"Happy to help you ";

(如果浏览器没有显示表情符号,只需将上面的代码复制到Xcode)

答案 1 :(得分:25)

NSString *str = @"Happy to help you \U0001F431";

NSData *data = [str dataUsingEncoding:NSNonLossyASCIIStringEncoding];
NSString *valueUnicode = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];


NSData *dataa = [valueUnicode dataUsingEncoding:NSUTF8StringEncoding];
NSString *valueEmoj = [[NSString alloc] initWithData:dataa encoding:NSNonLossyASCIIStringEncoding];

_lbl.text = valueEmoj;

SWIFT - 3或更高

    let str = "Happy to help you \U0001F431"

    let data : NSData = str.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
    let valueUnicode : String = String(data: data, encoding: NSUTF8StringEncoding)!

    let dataa   : NSData = valueUniCode.dataUsingEncoding(NSUTF8StringEncoding)!
    let valueEmoj : String = String(data: dataa, encoding: NSNonLossyASCIIStringEncoding)!

SWIFT - 4或更高

    let str = "Happy to help you \U0001F431"

    let data : NSData = str.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
    let valueUnicode : String = String(data: data as Data, encoding: String.Encoding.utf8)!

    let dataa   : NSData = valueUnicode.data(using: String.Encoding.utf8)! as NSData
    let valueEmoj : String = String(data: dataa as Data, encoding: String.Encoding.nonLossyASCII)!

答案 2 :(得分:6)

在Xcode版本7.2.1上, 您可以使用以下快捷方式显示符号面板并插入表情符号:

<强>快捷键: (同时按下以下三个键)

Ctrl Command Space

答案 3 :(得分:6)

由@Bhavesh Nayi提供的

Swift 3.0 解决方案更新

    let data =  txtMessage.text!.data(using: .nonLossyASCII)
    let emojiString = String.init(data: data!, encoding: .utf8)

并将其作为

发送到聊天服务器
    let data = message.message.data(using: .utf8)
    let emoji = String.init(data: data!, encoding: .nonLossyASCII)

然后将表情符号显示给UILablel

答案 4 :(得分:4)

如果是swift 2.3或更低

let textViewData : NSData = textViewString.dataUsingEncoding(NSNonLossyASCIIStringEncoding)!
let valueUniCode : String = String(data: textViewData, encoding: NSUTF8StringEncoding)!

let emojData   : NSData = valueUniCode.dataUsingEncoding(NSUTF8StringEncoding)!
let emojString : String = String(data: emojData, encoding: NSNonLossyASCIIStringEncoding)!

如果 Swift 3.0或更高

let textViewData = textViewString.data(using: .nonLossyASCII)
let valueUniCode = String.init(data: textViewData!, encoding: .utf8)!

let emojData   = valueUniCode.data(using: .utf8)
let emojString = String.init(data: emojData, encoding: .nonLossyASCII)