CALayer内容未在Swift2中显示

时间:2015-09-05 07:43:12

标签: core-animation calayer swift2 ios9

import UIKit

class ViewController: UIViewController {


    @IBOutlet weak var myView: UIView!



    override func viewDidLoad() {
        super.viewDidLoad()
        let url = NSURL(string: "http://blogs.independent.co.uk/wp-content/uploads/2012/12/some-girls.jpg")
        var image : UIImage? = nil
        if let data = NSData(contentsOfURL: url!) {
         image = UIImage(data: data)
        }

        let myLayer = CALayer()
        myLayer.anchorPoint = CGPoint(x: 0, y: 0)
        myLayer.bounds = CGRectMake(0, 0, self.view.bounds.width, self.view.bounds.height)
        myLayer.position = CGPoint(x: 0,y: 0)
        myLayer.borderColor = UIColor.redColor().CGColor
        myLayer.borderWidth = 2.0
      // the image is not displayed 
        myLayer.contents = image
        print(myLayer.contents)

        myView.layer.addSublayer(myLayer)
        myView.layer.opacity = 0.3
    }


}

UIImage没有显示为什么会这样?什么错误的代码?请帮助精通Core Animation和Swift的人

1 个答案:

答案 0 :(得分:2)

在CALayer中使用CGImage而不是UIImage因此将UIImage转换为CGImage如下:

myLayer.contents = image?.CGImage

这应该解决这个问题。