3

影の効果

グラデーションなしでシャドウ効果を実現する方法を知っている人はいますか? 以下のスクリーンショットのように

もう 1 つの懸念事項は、サブビューのシーケンスです。つまり、前のビューが後ろのビューの効果を隠してしまう可能性があります。これを克服する方法は?

4

1 に答える 1

4

最初の問題については、影の shadowRadius を変更できます。次に例を示します。

//You must include QuartzCore framework (#import <QuartzCore/QuartzCore.h>)
view.layer.cornerRadius = 5;
view.layer.shadowRadius = 0; //The shadow should be rendered as a solid shape
view.layer.shadowOffset = CGSizeMake(0, 2);
view.layer.shadowOpacity = 0.5;
view.layer.shadowColor = [UIColor blackColor].CGColor;

UIBezierPath *path = [UIBezierPath bezierPathWithRect:view.bounds];
view.layer.shadowPath = path.CGPath; //This is very important!

常に shadowPath を設定することを忘れないでください! そうしないと、影のレンダリングのパフォーマンスが大幅に低下します。

2 番目の問題については、申し訳ありませんが、元のビューの上にある別のビューの上にオブジェクトの影を表示させる方法はないと思います。

于 2013-07-09T03:48:36.740 に答える