2016-04-08 8 views

Antwort

2

Sie können CAGradientLayer wie folgt verwenden.

gradientLayer = [CAGradientLayer layer]; 
gradientLayer.frame = baseView.bounds; 
gradientLayer.startPoint = CGPointMake(0.5,0.0); 
gradientLayer.endPoint = CGPointMake(0.5,1.0); 
gradientLayer.locations = @[@(0.0), @(0.2), @(1.0)]; 
gradientLayer.colors = @[(id)[UIColor colorWithWhite:1.0 alpha:0.9].CGColor, 
         (id)[UIColor colorWithWhite:1.0 alpha:0.3].CGColor, 
         (id)[UIColor colorWithWhite:1.0 alpha:0.0].CGColor]; 
[baseView.layer addSublayer:gradientLayer]; 

CAGradientLayer unterstützt mehrere Eigenschaften zu natürlichen Gefälle, wie Einstellung Gradientenrichtung von startPoint und endPoint, wechselnde Farbkurve von locations und colors zu machen.

Sie machen auch einen transparenten Effekt, indem Sie den Alphakanal der Farbe verwenden.

+0

Die Frage Objective-C gekennzeichnet wurde, nicht schnell. – catalandres

+0

@catalandres in Ordnung. Aha. Leo schlägt bereits eine schnelle Version vor. also könnte ich meine antwort nicht bearbeiten. :-) Wenn es jemanden gibt, der eine objective-c-Version benötigt, wird es hilfreich sein. –

+0

Danke für Ihre Antwort. Ich überschreibe Code mit schnellen durch deinen Gedanken und Erfolg. :-) Thx, schon wieder. –

5

Screenshot

enter image description here

Swift Code

let mask = CAGradientLayer() 
mask.startPoint = CGPointMake(0.0, 0.5) 
mask.endPoint = CGPointMake(1.0, 0.5) 
let whiteColor = UIColor.whiteColor() 
mask.colors = [whiteColor.colorWithAlphaComponent(0.0).CGColor,whiteColor.colorWithAlphaComponent(1.0),whiteColor.colorWithAlphaComponent(1.0).CGColor] 
mask.locations = [NSNumber(double: 0.0),NSNumber(double: 0.2),NSNumber(double: 1.0)] 
mask.frame = label.bounds 
label.layer.mask = mask 
2

Swift 3:

let mask = CAGradientLayer() 
mask.startPoint = CGPoint(x: 0, y: 0.5) 
mask.endPoint = CGPoint(x:1.0, y:0.5) 
let whiteColor = UIColor.white 
mask.colors = [whiteColor.withAlphaComponent(0.0).cgColor,whiteColor.withAlphaComponent(1.0),whiteColor.withAlphaComponent(1.0).cgColor] 
mask.locations = [NSNumber(value: 0.0),NSNumber(value: 0.2),NSNumber(value: 1.0)] 
mask.frame = view.bounds 
view.layer.mask = mask