Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import "gradientButton.h"
- @interface gradientButton()
- @property (nonatomic, strong) CAGradientLayer* gradientLayer;
- @property (nonatomic, strong) CAGradientLayer* glossyLayer;
- @end
- @implementation gradientButton
- -(void)awakeFromNib
- {
- _gradientLayer = [[CAGradientLayer alloc] init];
- _gradientLayer.bounds = self.bounds;
- _gradientLayer.position = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2);
- [self.layer insertSublayer:_gradientLayer atIndex:0];
- self.layer.cornerRadius = 5.0f;
- self.layer.masksToBounds = YES;
- self.layer.borderWidth = 1.0f;
- _glossyLayer = [[CAGradientLayer alloc] init];
- _glossyLayer.bounds = CGRectMake(0, 0, self.bounds.size.width, self.bounds.size.height/2);
- _glossyLayer.position = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/4);
- [self.layer addSublayer:_glossyLayer];
- [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
- [self setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted];
- }
- #define GRADIENT_TOP [UIColor colorWithRed:38.0/255.0 green:78.0/255.0 blue:54.0/255.0 alpha:1]
- #define GRADIENT_BOTTOM [UIColor colorWithRed:44.0/255.0 green:71.0/255.0 blue:56.0/255.0 alpha:1]
- #define GLOSS_TOP [UIColor colorWithRed:0.70f green:0.70f blue:0.70f alpha:0.95f]
- #define GLOSS_BOTTOM [UIColor colorWithRed:0.70f green:0.70f blue:0.70f alpha:0.35f]
- #define GRADIENT_SELECTED_TOP [UIColor colorWithRed:138.0/255.0 green:178.0/255.0 blue:154.0/255.0 alpha:1]
- #define GRADIENT_SELECTED_BOTTOM [UIColor colorWithRed:114.0/255.0 green:171.0/255.0 blue:156.0/255.0 alpha:1]
- -(void)setHighlighted:(BOOL)highlighted{
- [super setHighlighted:highlighted];
- if(highlighted)
- [_gradientLayer setColors:@[(id)[GRADIENT_SELECTED_TOP CGColor],(id)[GRADIENT_SELECTED_BOTTOM CGColor]]];
- else
- [_gradientLayer setColors:@[(id)[GRADIENT_TOP CGColor],(id)[GRADIENT_BOTTOM CGColor]]];
- }
- - (void)drawRect:(CGRect)rect
- {
- [_gradientLayer setColors:@[(id)[GRADIENT_TOP CGColor],(id)[GRADIENT_BOTTOM CGColor]]];
- [_glossyLayer setColors:@[(id)[GLOSS_TOP CGColor], (id)[GLOSS_BOTTOM CGColor]]];
- [super drawRect:rect];
- }
- @end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement