iOS 4のCALayerまたはUIView backgroundColor UIImage

ios4 iphone quartz-2d
iOS 4のCALayerまたはUIView backgroundColor UIImage

こんにちは。

これが機能しないようにするために何が変わったのかわかりません。 iOS 3 SDKでは、CATiledLayerクラスで次のコードが正常に機能しました。

- (void)drawInContext:(CGContextRef)context {
    UIImage* image = [[ResourcesManager sharedResourcesManager] getUIImageFromArray:Image_Cell_Background Index:[mazeCell zone]];
    UIColor* color = [[UIColor alloc] initWithPatternImage:image];

    [self setBackgroundColor:[color CGColor]];
    [color release];

ただし、iOS 4用にコンパイルしてシミュレーターで実行すると、イメージのレンダリングに失敗します。 サブレイヤーとして追加された画像がうまくレンダリングされるので、特に困惑しています。 背景のみがレンダリングされません。

  2  0


ベストアンサー

これに数日を費やした後、次善策を思いつきました。

まず、UIViewでこれを実行しようとしましたが、まだ同じ問題がありました。 次に、backgroundColorプロパティを持つ他のタイプのGUIコンポーネントを試しました。

それらはすべて同じ問題を引き起こしました。 私の知る限り、これはバグであり、HDまたはSDグラフィックスを使用するかどうかを解釈する新しいイメージのロード/キャッシュプロセスの実装に関係しています。

基本的に、サブイメージまたはサブレイヤー(実装に応じて)として背景画像をロードし、バック(階層の一番下)に送信するか、他のサブビュー/サブレイヤーの前に最初にロードする回避策。

おそらく、IOS 3のバックグラウンド画像はビュー/レイヤー内でこれを実行し、おそらくAppleはサブビュー/サブレイヤーに対して背景画像を二重に処理しないことを決定し、そのサポートを削除しました。

ただし、少なくとも背景を色または透明色に設定できます。 これを確認しました。

いずれにせよ、アップルがこの決定を行った理由を説明するか、SDKを修正して処理するようになるまで、この回避策を使用してください。 私はこの問題についてアップルの開発者フォーラムが言ったことを知りたいと思っています(私はそれが提起されたと確信しています)。 私はまだアルファ段階にあるので、まだプログラムに参加していません。ベータ版になったら、登録します。

2


タイトルとURLをコピーしました