Thursday, March 26, 2015

Adding Custom Gradient to Button:


-(CAGradientLayer *)getCAGradientLayerWithFrame : (CGRect)bounds {
  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
 
  bounds.origin.y    = bounds.size.height - 6;
  bounds.size.height = 6;

  gradientLayer.frame = bounds;
  gradientLayer.colors = [NSArray arrayWithObjects:
                          (id)[UIColor orangeColor].CGColor,
                          (id)[UIColor orangeColor].CGColor,
                          nil];
 
  gradientLayer.locations = [NSArray arrayWithObjects:
                             [NSNumber numberWithFloat:0.0f],
                             [NSNumber numberWithFloat:1.0f],
                             nil];

  return gradientLayer;
}




- (IBAction)btnAction:(id)sender {
 
  UIButton *btn = (UIButton *)sender;
  NSArray *subLayersArr = [btn.layer sublayers];
 
  NSLog(@"subLayersArr : %@", subLayersArr);
 
 
  CAGradientLayer *subLayer = nil;
  if ([subLayersArr count]) {
    subLayer = [subLayersArr objectAtIndex:0];
  }
 
  NSLog(@"subLayer : %@", subLayer);
 
 
  btn.selected = !btn.selected;

  if (btn.selected) {
    subLayer.hidden = NO;
  } else {
    subLayer.hidden = YES;
  }
 
}


Usage:
=====
CAGradientLayer *layer = [self getCAGradientLayerWithFrame:self.aButton.layer.bounds];
self.aButton.backgroundColor = [UIColor yellowColor];
[self.aButton.layer addSublayer:layer];





No comments: