3

次のようにして、ビューに影を追加しています

- (void)viewDidLoad{
    [super viewDidLoad];

    self.view.layer.shadowColor = [UIColor blackColor].CGColor;
    self.view.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
    self.view.layer.shadowOpacity = 1.0f;
    self.view.layer.shadowRadius = 4.0f;
    self.view.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
}

ただし、以下のようにまったく影のないビューを取得しています

ここに画像の説明を入力

途中でいくつかのポイントを逃しましたか。この問題についてアドバイスをください

4

8 に答える 8

3

layer.masksToBounds を NO に、clipsToBounds を YES に設定する必要があります。

self.view.layer.masksToBounds = NO;
self.view.clipsToBounds = YES;
于 2014-10-09T14:14:10.803 に答える
1

影をまったく相殺していません。試す:

self.view.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
于 2012-10-22T19:50:49.063 に答える
1

オフセットを 0 にすると、ビューに nil 効果が生じます。

于 2012-10-23T03:48:38.973 に答える
1

申し訳ありませんが、これは私の愚かな間違いです。私が持っているビュー構造は

view(UIView) ( in white color )
    |
    |
    aView (UIView) ( in orange color )

view私がしたことは、 notの影を示すことでしaViewた。以下のようにコードを修正するだけです

(void)viewDidLoad{
    [super viewDidLoad];

    self.aView.layer.shadowColor = [UIColor blackColor].CGColor;
    self.aView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f);
    self.aView.layer.shadowOpacity = 1.0f;
    self.aView.layer.shadowRadius = 4.0f;
    self.aView.layer.shadowPath = [UIBezierPath bezierPathWithRect:self.view.bounds].CGPath;
}
于 2012-10-22T20:09:36.443 に答える
0

オフセットに 0 以外の特定の値を設定する必要があります。たとえば、次のようになります。

self.view.layer.shadowOffset = CGSizeMake(3, -1);

ビューに影が形成されるようにします。

于 2012-10-23T03:45:37.993 に答える
0

ことを確認してください self.clipsToBounds = NO;

于 2015-07-09T03:34:45.490 に答える