0

最新の SDK を使用して iOS アプリを開発しています。

私は内側に習慣UIViewがあります。UIImageそのカスタムUIViewに、グラデーション レイヤーを追加します。

- (void)changeBackgroundWithLayer:(CALayer*)newLayer
{
    if (_gradientBackground != nil)
        [_gradientBackground removeFromSuperlayer];

    _gradientBackground = newLayer;
    [self.layer addSublayer:_gradientBackground];
}

しかし、私がそうすると、私は見ることができませんUIImage

CALayerを に追加してUIViewを表示するにはどうすればよいUIImageViewですか?

階層は次のとおりです。

UIView
  |
  ---- UIImageView
4

2 に答える 2

2

ビュー階層が実際に何であるかについては混乱します。

あなたはで言う、UIImageあなたはあなたが中にUIViewいるという意味ですか?または、drawRectをオーバーライドして画像を手動で描画していますか?UIImageViewUIView

insertLayer:atIndex:グラデーションが画像レイヤーの後ろにあることを確認する必要があるので、私は見ていきます。手動で描画している場合は、おそらくUIImageViewサブビューとして追加するように切り替えますUIView

于 2013-03-13T16:58:43.253 に答える
1

私の解決策:

- (void)changeBackgroundWithLayer:(CALayer*)newLayer
{
    if (_gradientBackground != nil)
        [_gradientBackground removeFromSuperlayer];

    _gradientBackground = newLayer;
    [self.layer insertSublayer:newLayer atIndex:0];
}
于 2013-03-13T17:01:23.537 に答える