26

これは私のコードです。

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;

影の効果が得られませんでした。

4

4 に答える 4

40

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

于 2012-04-30T13:17:46.397 に答える
24

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

設定listView.layer.masksToBounds = YESすると、境界の外に何も描画できないため、影ができなくなります

于 2012-04-30T13:17:43.437 に答える
1

使用する必要がある場合は、この SO 投稿masksToBounds = YES;を確認してください。2 つの入れ子になったビューを使用して、ビューでシャドウと丸みを帯びた角 (この特定のケース) の両方を使用する方法を説明します。

于 2012-07-30T19:16:20.517 に答える