0

ビューの背景にグラデーションを設定しています:

CAGradientLayer *grad = [CAGradientLayer layer];
grad.frame = self.contentView.frame;
grad.colors = @[(id)[[UIColor colorWithRed:1.0f green:0.5f blue:0.5f alpha:0.0f] CGColor],
                (id)[[UIColor colorWithWhite:1.0f alpha:0.5f] CGColor],
                (id)[[UIColor colorWithWhite:1.0f alpha:0.8f] CGColor],
                (id)[[UIColor colorWithWhite:0.0f alpha:1.0f] CGColor]];
grad.locations = @[@0.00f, @0.5f, @0.7f, @1.00f];        
self.layer.mask = grad;

問題は、私のビューの上にあるすべての要素(UIButton、UILabel ...)が親と同じ勾配を持つことです。このビューにあるアイテムではなく、ビューのみにグラデーションを設定するにはどうすればよいですか?

4

2 に答える 2

1

マスクを設定する代わりに、以下のようにグラデーションをビューのサブレイヤーとして設定できます。

 [self.view setBackgroundColor:[UIColor clearColor]]; 
 [self.view.layer insertSublayer:grad atIndex:0];
于 2014-06-08T10:45:48.980 に答える