2016-07-23 29 views
2

UIGraphicsImageRendererは、画像コンテキストを作成して描画する新しいiOS 10の方法です。私は、単純な画像を描画するためにUIGraphicsImageRendererを使用しようとしている:私のUIGraphicsImageRendererの描画が(iOS 10)でないのはなぜですか?

let size = CGSize(width:100,height:100) 
let f = UIGraphicsImageRendererFormat() 
f.opaque = false 
let r = UIGraphicsImageRenderer(size:size, format: f) 
let im = r.image { _ in 
    let p = UIBezierPath(ovalIn: CGRect(origin: CGPoint.zero, size: size)) 
    UIColor.blue().setFill() 
    p.fill() 
} 
let iv = UIImageView(image:im) 
iv.frame.origin = CGPoint(x: 200, y: 200) 
self.view.addSubview(iv) 

私は青い黒丸を見ることを期待しています。しかし、私は何も見ません。私は間違って何をしていますか?

PS私はXcode 8 Seed 3を使用しています。

答えて

2

問題は、それがUIGraphicsImageRendererFormatの作成方法ではないことです。ドキュメントはこの時点では少し不明ですが、実際にはこれを言ってください。

let size = CGSize(width:100,height:100) 
let f = UIGraphicsImageRendererFormat.default() // * 
f.opaque = false 
let r = UIGraphicsImageRenderer(size:size, format: f) 
let im = r.image { _ in 
    let p = UIBezierPath(ovalIn: CGRect(origin: CGPoint.zero, size: size)) 
    UIColor.blue().setFill() 
    p.fill() 
} 
let iv = UIImageView(image:im) 
iv.frame.origin = CGPoint(x: 200, y: 200) 
self.view.addSubview(iv) 

あなたのコードは完全に動作します。 (あなたがそのプロパティを自分のすべてを設定していない場合)

前のコードの問題は、UIGraphicsImageRendererFormat()は、このようにほとんど役に立たない完全未設定 UIGraphicsImageRendererFormatを作成することです。

関連する問題