2013-04-01 11 views
9

Chciałbym użyć wbudowanej znaków emotikonom (w szczególności kilku buźki, np \ue415) w UILabel ale chciałbym emotikony mają być świadczone w skali szarości. AppleProducent symbole Emotikon skali szarości w UILabel

I chce je zachować znaki w UILabel (albo zwykłego tekstu lub przypisana jest w porządku). nie szukam rozwiązania hybrydowe obrazu/String (co już mam).

czy ktoś wie jak to osiągnąć?

+0

Czy kiedykolwiek znalazłeś rozwiązanie tego problemu? –

+0

@AlexBeals niestety nie. – DrewInTheMountains

Odpowiedz

0

Wiem, że powiedziałeś, że nie szukasz "hybrydy im rozwiązanie wiekowe ", ale od jakiegoś czasu ścigałem tego smoka, a najlepszy wynik, jaki mogłem wymyślić, to hybryda. Na wypadek, gdyby moje rozwiązanie było jakoś bardziej pomocne w Twojej podróży, włączam je tutaj. Powodzenia!

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! 
    } 
} 
Powiązane problemy