4

UIView の下部と右側にドロップ シャドウを追加することを考えていますが、そこにあるすべてのソリューションがビューの 4 つの側面にシャドウを追加していることがわかりました。それを回避する方法はありますか?

4

3 に答える 3

20

CAGradientLayerのように使用できます。

CAGradientLayer *shadow = [CAGradientLayer layer];
shadow.frame = CGRectMake(-10, 0, 10, myView.frame.size.height);
shadow.startPoint = CGPointMake(1.0, 0.5);
shadow.endPoint = CGPointMake(0, 0.5);
shadow.colors = [NSArray arrayWithObjects:(id)[[UIColor colorWithWhite:0.0 alpha:0.4f] CGColor], (id)[[UIColor clearColor] CGColor], nil];
[myView.layer addSublayer:shadow];

ニーズに合わせて を変更frameする必要があります。この例では、左側のビューの高さに沿って影を表示します。始点と終点を変更して、影の方向を制御することもできます。

于 2012-04-15T23:05:17.250 に答える
1

ビューの下部と右側に引き伸ばされた影の画像を持つ2つのUIImageViewを追加することでそれを行うことができます。これらの UIImageViews ですべてのビューをカバーする必要はありません。必要なだけクリップするだけです。iPhoneでtwitterの色を混ぜたレイヤーを見てください。UIImageViewsを使って綺麗な陰影を作っているのだと思います。これにより、システム リソースが節約されます。もちろん、CALayer を使用して影を作成することもできますが、影をレンダリングするためにより多くのシステム リソースを消費すると思うので、CALayer は次の選択肢です。

于 2012-04-16T02:04:54.207 に答える