显示没有表情符号转换的行unicode字符

时间:2014-08-15 13:16:53

标签: ios unicode character

我尝试在iOS上显示没有表情符号的unicode字符。 我读了this article,但是当我尝试一些例子时,结果就像:

enter image description here

我输出下一个代码:

   str1 = "\u{25B6}\u{0000FE0E} " 
   str2 = "\u{25B6} " 
   str3 = "\u{1F310}\u{0000FE0E} " 
   str4 = "\u{1F310} "

我该如何解决这个问题?我希望它会返回原始的白黑色unicode字符。

2 个答案:

答案 0 :(得分:1)

我找不到合适的解决方案,但是为了获得灰度图像(在我的情况下为UIButton的背景图像),我们可以绘制这个角色并在其上使用滤色器。

        var text = NSString(string: "\u{1F310}")
        var font = UIFont.systemFontOfSize(22)
        var size = text.sizeWithAttributes([NSFontAttributeName : font])
        UIGraphicsBeginImageContext(size)
        text.drawAtPoint(CGPointMake(0.0, 0.0), withAttributes: [NSFontAttributeName : font])
        var symbolRawImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()


        UIGraphicsBeginImageContext(symbolRawImage.size)
        var fillCtx = UIGraphicsGetCurrentContext()

        //Chose color for that sign
        textColor.setFill()
        CGContextTranslateCTM(fillCtx, 0, symbolRawImage.size.height)
        CGContextScaleCTM(fillCtx, 1.0, -1.0)
        CGContextSetBlendMode(fillCtx, kCGBlendModeNormal)
        var fillRect = CGRectMake(0, 0, symbolRawImage.size.width, symbolRawImage.size.height)
        CGContextDrawImage(fillCtx, fillRect, symbolRawImage.CGImage)
        CGContextClipToMask(fillCtx, fillRect, symbolRawImage.CGImage);
        CGContextAddRect(fillCtx, fillRect);
        CGContextDrawPath(fillCtx,kCGPathFill);
        var outputImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

所以现在我们可以选择正确的颜色。

答案 1 :(得分:0)

str1 =@"\u25c0\U0000FE0E";适合我。