0

このコードを使用して、MyViewDidLoadのUIViewcontrollerでシャドウ効果を取得しています

// Add drop shadow to the view.
        CAGradientLayer *gradientLayer = [CAGradientLayer layer];
        gradientLayer.frame = CGRectMake(0, 0, 90, self.view.frame.size.height);
        gradientLayer.colors = [NSArray arrayWithObjects:
                                (id)[UIColor lightGrayColor].CGColor,
                                (id)[UIColor clearColor].CGColor,
                                nil];
        gradientLayer.startPoint = CGPointMake(-7, 0.1);
        gradientLayer.endPoint = CGPointMake(1, 0.15);   
        [self.view.layer addSublayer:gradientLayer];

ビューに正しい影が表示されましたが、問題は、別のビューコントローラーに移動して戻ってきたときに、ショーが毎回暗くなることです。別のビューに移動するためにUIPopOverControllerを使用しています。

私のコードの問題は何ですか?前もって感謝します。

4

2 に答える 2

0

私はあなたの正確なコードでいくつかのテストを実行しました、そしてそれは正しく働きました。私があなたが抱えている問題を再現できる唯一の方法は、あなたのコードをまたはのどちらかに置くことviewWillAppear:ですviewDidAppear:。影を描いているこれらの関数のいずれかにコードがある可能性はありますか?

于 2012-05-30T08:57:55.620 に答える
0

これが助けになるかどうかはわかりませんが、UIPopOverコントローラーを使い始めたとき、まったく同じ状況になりました。

それは、新しいポップオーバーをアクティブにするたびに、古いポップオーバーを削除せずに何度もオーバーレイしていたためです。ですから、影は毎回どんどん暗くなっていったようです。

別のビューに移動するときにPopOverを削除しますか、それとも置き去りにしますか?

ちょっとした考え。

于 2013-05-02T13:19:47.220 に答える