2013-04-01 3 views
9

Я хотел бы использовать Apple, встроенный Emoji символов (в частности, некоторые из смайлов, например \ue415) в UILabel, но я хотел бы, чтобы Emojis быть вынесено в оттенках серого.Сделать Emoji символы полутоновой в UILabel

I хотим, чтобы они оставались символы в UILabel на (либо обычном тексте или приписывали это хорошо). Я не ищу для гибридного изображения струнного решения/(который у меня уже есть).

кто-нибудь знает, как это сделать?

+0

Вы когда-нибудь находили решение для этого? –

+0

@AlexBeals к сожалению нет. – DrewInTheMountains

ответ

0

Я знаю, что вы сказали, что не ищете «гибридного им возрастное решение ", но я преследовал этого дракона на некоторое время, и лучший результат я мог придумать с гибридом. На всякий случай мое решение как-то более полезно в вашем путешествии, я включаю его здесь. Удачи!

import UIKit 
import QuartzCore 

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // the target label to apply the effect to 
     let label = UILabel(frame: view.frame) 
     // create label text with empji 
     label.text = " HELLO" 
     label.textAlignment = .center 
     // set to red to further show the greyscale change 
     label.textColor = .red 
     // calls our extension to get an image of the label 
     let image = UIImage.imageWithLabel(label: label) 
     // create a tonal filter 
     let tonalFilter = CIFilter(name: "CIPhotoEffectTonal") 
     // get a CIImage for the filter from the label image 
     let imageToBlur = CIImage(cgImage: image.cgImage!) 
     // set that image as the input for the filter 
     tonalFilter?.setValue(imageToBlur, forKey: kCIInputImageKey) 
     // get the resultant image from the filter 
     let outputImage: CIImage? = tonalFilter?.outputImage 
     // create an image view to show the result 
     let tonalImageView = UIImageView(frame: view.frame) 
     // set the image from the filter into the new view 
     tonalImageView.image = UIImage(ciImage: outputImage ?? CIImage()) 
     // add the view to our hierarchy 
     view.addSubview(tonalImageView) 
    } 
} 

extension UIImage { 
    class func imageWithLabel(label: UILabel) -> UIImage { 
     UIGraphicsBeginImageContextWithOptions(label.bounds.size, false, 0.0) 
     label.layer.render(in: UIGraphicsGetCurrentContext()!) 
     let img = UIGraphicsGetImageFromCurrentImageContext() 
     UIGraphicsEndImageContext() 
     return img! 
    } 
}