Maskieren Sie ein Bild in Swift mit CALayer und UIImage

Ich bin Programmierung in Swift. Ich möchte zum maskieren eines Bildes mit CALayer und UIImage. Ich bin momentan dabei, mein Bild mit der Maske programmgesteuert. Das erstellte Bild mit der Maske ist ein UIImage und funktioniert gut, wenn ich es auf seine eigene. Aber wenn ich es als eine Maske, die den ganzen Bildschirm weiß wird. Ich vermute, dass mein problem in der Konfiguration der CALayer-Objekt. Ich würde Ihre Hilfe schätzen. Danke!

class ViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()
        //Do any additional setup after loading the view, typically from a nib.
        var maskImageSize = CGSizeMake(self.imageView.frame.width, self.imageView.frame.height)
        UIGraphicsBeginImageContextWithOptions(maskImageSize, false, 0.0)

        var color = UIColor(white: 1.0, alpha: 1.0)
        color.setFill()
        var rect = CGRectMake(0, 0, self.imageView.frame.width, self.imageView.frame.height)
        UIRectFill(rect)

        color = UIColor(white: 0.0, alpha: 1.0)
        color.setFill()
        rect = CGRectMake((self.imageView.frame.width/2)-100, (self.imageView.frame.height/2)-100, 200, 200)
        UIRectFill(rect)

        var maskImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()

        var maskLayer = CALayer()
        maskLayer.contents = maskImage
        maskLayer.contentsRect = CGRectMake(0, 0, self.imageView.bounds.width, self.imageView.bounds.height)


        self.imageView.image = UIImage(named: "pictobemasked.png")

        self.imageView.layer.mask = maskLayer;
    }

}

InformationsquelleAutor user2732722 | 2014-12-30

Schreibe einen Kommentar