I have a custom UITableView cell that has a button and label. I run the method when someone clicks on a button and then color this line. Everything is working fine.
Actually i want
- button for pressing buttons, the line is painted in a gradient (now it works)
- The gradient fades.
My code is below (BackView is a view in my custom cell)
CAGradientLayer *layer = [CAGradientLayer layer]; layer.frame = BackView.bounds; UIColor *cOne = [UIColor paleYellowColor]; UIColor *cTwo = [UIColor whiteColor]; NSArray *colors = [NSArray arrayWithObjects:(id)cOne.CGColor, cTwo.CGColor, nil]; layer.colors = colors; NSNumber *stopOne = [NSNumber numberWithFloat:0.00]; NSNumber *stopTwo = [NSNumber numberWithFloat:0.8]; NSArray *locations = [NSArray arrayWithObjects:stopOne, stopTwo, nil]; layer.locations = locations; CABasicAnimation *animateLayer = [CABasicAnimation animationWithKeyPath:@"colors"]; animateLayer.fromValue = [UIColor paleYellowColor]; animateLayer.toValue = [UIColor whiteColor]; animateLayer.duration = 3.0; animateLayer.removedOnCompletion = YES; animateLayer.fillMode = kCAFillModeBoth; animateLayer.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; [layer addAnimation:animateLayer forKey:@"animation"]; [BackView.layer insertSublayer:layer atIndex:0];
With this code, when I touch a button in a line, the background gets a gradient, but it never disappears, there is no animation - nothing. What am I doing wrong? I tried a few permutations and saw some examples, but none of them helped me work in this.
Thanks!
source share