CGImage
にはどのようにUIEdgeInsets
(またはそのバリエーション)が適用されますか?これは私が最終的に達成しようとしているものですが、CGImage
に変換される前に、CGImage
はUIImage
に適用された下側のインセットを認識しません。CGImageにUIEdgeInsetsを適用するには?
var image = someUIImage
image = image.withAlignmentRectInsets(UIEdgeInsets(top: 0, left: 0, bottom: (image.size.height/2), right: 0))
let imageCG: CGImage = image.cgImage!
layer.contents = imageCG
そして、私は(ここに見られるように)直接CGImage
にインセットを適用することはできません。
let image = someUIImage.cgImage!
image. // can't apply any inset here
layer.contents = image
回避策?
UIViewまたはそのサブクラスで正しく表示することができますか? – dfd
残念ながら、CGImageは、この特定のデリゲートメソッドが必要とするものです(イメージはマップ上の注釈として使用されています)ので、私はほとんど動揺しません。 – sconewolf
私は実際に今日の午後にいくつかのコードを使って作業しています。私は 'UIView'を回すコードを持っていて、それはサブビューをUIImageに変換しています。今私は特定のサイズを反映するために、そのイメージ(実際にはマスクです)のサイズを変更/トリミング/スケールする必要があります。 IMHOは、 'UIImge'を持っていれば、' CGImage'(またはこれと逆の、私が今作業しているもの)に変更します。これはコードの1行です。これはあなたのために働くと思いますか? (1)すべてのインセットを取得し、ビューに設定します。 (2)適切なサイズのビューのスケーリングされたイメージを作成します。もしそうなら、私が終わったら(うまくいけば今日)私は完全なコードを投稿します。 – dfd