どのようにこれらの両方を同じUIViewで正しく使用できますか?CALayer drawInContextとaddSublayer
私は1つのカスタム私はコンテンツとしてオーバーレイPNGの画像を設定する別のものを持っている私はdrawInContext
内のパターンを描画するのCALayerをサブクラス化しています。
私は単なる背景です。
どのようにこれらのアイテムの3つをオーバーレイするのですか?
[self.layer addSublayer:bottomLayer]; // this line is the problem
[squaresLayer drawInContext:viewContext];
[self.layer addSublayer:imgLayer];
私がこの順番で行うと、他の2人が正しく描画します。 bottomLayerをどこに置いても、常にsquaresLayerが描画されないようにします。私が3つのレイヤーを必要とする理由は、バックグラウンドレイヤーとカスタムレイヤーの色をアニメーション化することです。最上位レイヤーは単なるグラフィカルオーバーレイです。
いくつかの質問:レイヤーが描画されていないことは確かですか?それとも、描かれているが、あなたが探している結果をあなたに与えていないのですか?レイヤーはどのように重なっていますか?これらのレイヤーはすべて同じビューにする必要がありますか、またはそれらのレイヤーを別のビューに分割できますか? – Amagrammer
こんにちは、彼らは同じUIViewにすることができなければなりません。私はサブビューを使うことができると思います。しかし、私は2つのカスタムレイヤーを作成して解決策を考え出しました。 "addSublayer"を介してself.layerに追加されたものは、 "drawInContext"で描画されたものの上に描画され、描画の.layerのコンテキストに直接描画されているようです。それで、私はそのコンテキストに2つのレイヤーをレンダリングし、上にimgLayerを追加しました。 NSTimerを使用してアニメーションを巻き上げる場合は、drawInContextを実行するビューをリフレッシュするように、うまく動作します。 – Michael