web-dev-qa-db-ja.com

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;

シャドウ効果が得られませんでした。

23
Anbu Raj

影は実際にはUIViewの下に描画されます。 maskToBoundsをYESに設定すると、UIViewフレームの外にあるすべての描画がクリップされます。 これは、SOこれをより詳細に説明するリンクです

35
bbarnhart

影はレイヤーの境界の外側に描画されます。影を見るにはlistView.layer.masksToBounds = NOを設定する必要があります

listView.layer.masksToBounds = YESを設定すると、境界の外に何も描画できないため、影を取得できません

22
Hector

masksToBounds = YES;を使用する必要がある場合は、チェックアウト this SO post を使用してください。これは、(この特定の場合) 2つのネストされたビューを使用したビュー:外側のビューは影を落とし、境界をマスクしませんが、内側のビューは角を丸めて境界をマスクします。

1
Raginmari