13 - (void) addGradientFace
15 [
self addGradientFace:[UIColor orangeColor]];
17 - (void) addGradientImageMask
19 [
self addGradientFace];
25 - (void) addGradientFace:(UIColor *)accentColor
27 [
self.layer setBorderColor: [[UIColor blackColor] CGColor]];
28 [
self.layer setBorderWidth: 2.0];
29 self.layer.cornerRadius = 8.0f;
30 self.layer.masksToBounds = YES;
32 [
self setTitleEdgeInsets:UIEdgeInsetsMake(2, 2, 2, 2)];
33 UIFont *expandedFont = [UIFont fontWithName:@"Verdana-Bold" size:18.0];
34 [
self.titleLabel setFont:expandedFont];
35 [
self.titleLabel setLineBreakMode:NSLineBreakByWordWrapping];
36 [
self.titleLabel setTextAlignment:NSTextAlignmentCenter];
37 [
self.titleLabel setAdjustsFontSizeToFitWidth:YES];
38 self.clipsToBounds = YES;
40 CAGradientLayer *gradientLayer = [
self makeGradientLayer:NO colorBand:accentColor];
41 [gradientLayer setOpaque:YES];
42 CAGradientLayer *maskLayer = [
self makeMaskLayer];
43 gradientLayer.mask = maskLayer;
45 [
self.layer addSublayer:gradientLayer];
47 - (CAGradientLayer *) makeGradientLayer:(Boolean) status colorBand:(UIColor *)bandColor
50 CAGradientLayer *gradientLayer = [CAGradientLayer layer];
51 CGRect overFlowBounds =
self.layer.bounds;
53 gradientLayer.frame = overFlowBounds;
56 gradientLayer.colors = [NSArray arrayWithObjects:
57 (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
58 (id)[UIColor colorWithWhite:1.0f alpha:0.1f].CGColor,
59 (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
62 gradientLayer.colors = [NSArray arrayWithObjects:
63 (id)bandColor.CGColor,
64 (id)[UIColor colorWithWhite:1.0f alpha:0.0f].CGColor,
65 (id)bandColor.CGColor,
69 gradientLayer.locations = [NSArray arrayWithObjects:
70 [NSNumber numberWithFloat:0.0f],
71 [NSNumber numberWithFloat:0.5f],
72 [NSNumber numberWithFloat:1.0f],
75 gradientLayer.cornerRadius = 6;
79 - (CAGradientLayer *) makeMaskGradientLayer
82 CAGradientLayer *gradientLayer = [CAGradientLayer layer];
83 CGRect overFlowBounds =
self.layer.bounds;
85 gradientLayer.frame = overFlowBounds;
87 gradientLayer.colors = [NSArray arrayWithObjects:
88 (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
89 (id)[UIColor clearColor].CGColor,
90 (id)[UIColor colorWithWhite:0.4f alpha:0.5f].CGColor,
93 gradientLayer.locations = [NSArray arrayWithObjects:
94 [NSNumber numberWithFloat:0.0f],
95 [NSNumber numberWithFloat:0.5f],
96 [NSNumber numberWithFloat:1.0f],
99 gradientLayer.cornerRadius = 6;
101 return gradientLayer;
109 - (CAGradientLayer *) makeMaskLayer
111 CAGradientLayer *gradientLayer = [CAGradientLayer layer];
112 gradientLayer.frame =
self.layer.bounds;
114 gradientLayer.colors = [NSArray arrayWithObjects:
115 (id)[UIColor blackColor].CGColor,
116 (id)[UIColor clearColor].CGColor,
117 (id)[UIColor blackColor].CGColor,
119 gradientLayer.locations = [NSArray arrayWithObjects:
120 [NSNumber numberWithFloat:0.0f],
121 [NSNumber numberWithFloat:0.5f],
122 [NSNumber numberWithFloat:1.0f],
125 return gradientLayer;
127 - (void) setMaskView:(UIView *)maskView
129 NSLog(
@"UIButton+Y5GradientFace.setMaskView");
133 self.layer.borderWidth = 2;
134 self.layer.borderColor = UIColor.cyanColor.CGColor;
135 self.layer.contents = (__bridge
id _Nullable)([UIImage imageNamed:
@"pomegraniteSeeds500.png"].CGImage);
140 self.layer.contentsGravity = kCAGravityCenter;