2012-04-30 7 views
18

これは私のコードです。UIViewの影が機能しない

listView.layer.masksToBounds = NO; 
listView.layer.shadowOffset = CGSizeMake(-3, 3); 
listView.layer.shadowColor=[[UIColor blackColor] CGColor]; 
listView.layer.shadowRadius = 4; 
listView.layer.shadowOpacity = 1.0; 
[listView.layer setShouldRasterize:YES]; 

シャドウエフェクトで良好に機能します。

listView.layer.masksToBounds = YES; 

を変えながら、私は影の効果を得るdidntの。

+0

'listView'はUIView –

答えて

25

影が実際にUIViewの下に描かれているシャドウ得ることができないので、あなたが境界の側に何かを引き出すことができないlistView.layer.masksToBounds = YESを設定した場合、シャドウに

を見るためにlistView.layer.masksToBounds = NOを設定する必要があります。 maskToBoundsをYESに設定すると、UIViewフレーム外の描画がクリップされます。 Here is a SO link that describes this in more detail.

16

影はレイヤの境界の外側に描画されます。あなたは、あなたが

+0

です。これが最も役立ちました。ありがとう –

1

masksToBounds = YES;チェックアウトthis SO postを使用する必要がある場合。 2つのネストされたビューを使用して、ビュー上でシャドウと丸みのあるコーナー(両方とも)を使用する方法を説明します:アウタービューはシャドウをキャストし、内側のビューはコーナーを丸めて境界にマスクしながら境界にマスクしません。