Today's Menu  Portugal
journal and plan nutrition
UIButton+Y5GradientFace.m
Go to the documentation of this file.
1 //
2 // UIButton+Y5GradientFace.m
3 // TodaysMenu
4 //
5 // Created by Don Zeek on 12/31/18.
6 // Copyright © 2018 net.dzeek.y2015.ios.portfolio. All rights reserved.
7 //
8 
10 
11 @implementation UIButton (Y5GradientFace)
12 
13 - (void) addGradientFace
14 {
15  [self addGradientFace:[UIColor orangeColor]];
16 }
17 - (void) addGradientImageMask
18 {
19  [self addGradientFace];
20 
21 // CAGradientLayer *gradientLayer = [self makeMaskLayer];
22 // self.layer.mask = gradientLayer;
23 
24 }
25 - (void) addGradientFace:(UIColor *)accentColor
26 {
27  [self.layer setBorderColor: [[UIColor blackColor] CGColor]];
28  [self.layer setBorderWidth: 2.0];
29  self.layer.cornerRadius = 8.0f;
30  self.layer.masksToBounds = YES;
31 
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;
39 
40  CAGradientLayer *gradientLayer = [self makeGradientLayer:NO colorBand:accentColor];
41  [gradientLayer setOpaque:YES]; // made no diff, still xparnt
42  CAGradientLayer *maskLayer = [self makeMaskLayer];
43  gradientLayer.mask = maskLayer;
44 
45  [self.layer addSublayer:gradientLayer];
46 }
47 - (CAGradientLayer *) makeGradientLayer:(Boolean) status colorBand:(UIColor *)bandColor
48 {
49 
50  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
51  CGRect overFlowBounds = self.layer.bounds;
52  // overFlowBounds.size.height -= 2.0;
53  gradientLayer.frame = overFlowBounds;
54 
55  if (status) {
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,
60  nil];
61  } else {
62  gradientLayer.colors = [NSArray arrayWithObjects:
63  (id)bandColor.CGColor,
64  (id)[UIColor colorWithWhite:1.0f alpha:0.0f].CGColor,
65  (id)bandColor.CGColor,
66  nil];
67  }
68 
69  gradientLayer.locations = [NSArray arrayWithObjects:
70  [NSNumber numberWithFloat:0.0f],
71  [NSNumber numberWithFloat:0.5f],
72  [NSNumber numberWithFloat:1.0f],
73  nil];
74 
75  gradientLayer.cornerRadius = 6; // refillButton.layer.cornerRadius;
76 
77  return gradientLayer;
78 }
79 - (CAGradientLayer *) makeMaskGradientLayer
80 {
81 
82  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
83  CGRect overFlowBounds = self.layer.bounds;
84  // overFlowBounds.size.height -= 2.0;
85  gradientLayer.frame = overFlowBounds;
86 
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,
91  nil];
92 
93  gradientLayer.locations = [NSArray arrayWithObjects:
94  [NSNumber numberWithFloat:0.0f],
95  [NSNumber numberWithFloat:0.5f],
96  [NSNumber numberWithFloat:1.0f],
97  nil];
98 
99  gradientLayer.cornerRadius = 6; // refillButton.layer.cornerRadius;
100 
101  return gradientLayer;
102 }
103 
104 //- (CALayer *) makeImageRootLayer
105 //{
106 // CALayer *retLayer = [CALayer layer];
107 // retLayer.contents =
108 //}
109 - (CAGradientLayer *) makeMaskLayer
110 {
111  CAGradientLayer *gradientLayer = [CAGradientLayer layer];
112  gradientLayer.frame = self.layer.bounds;
113 
114  gradientLayer.colors = [NSArray arrayWithObjects:
115  (id)[UIColor blackColor].CGColor,
116  (id)[UIColor clearColor].CGColor,
117  (id)[UIColor blackColor].CGColor,
118  nil];
119  gradientLayer.locations = [NSArray arrayWithObjects:
120  [NSNumber numberWithFloat:0.0f],
121  [NSNumber numberWithFloat:0.5f],
122  [NSNumber numberWithFloat:1.0f],
123  nil];
124 
125  return gradientLayer;
126 }
127 - (void) setMaskView:(UIView *)maskView
128 {
129  NSLog(@"UIButton+Y5GradientFace.setMaskView");
130 }
131 - (void) addMask
132 {
133  self.layer.borderWidth = 2;
134  self.layer.borderColor = UIColor.cyanColor.CGColor;
135  self.layer.contents = (__bridge id _Nullable)([UIImage imageNamed:@"pomegraniteSeeds500.png"].CGImage);
136  // self.layer.mask = (__bridge id _Nullable)([UIImage imageNamed:@"mail19.png"].CGImage);
137  // CALayer *mskLayer = [self makeMaskLayer];
138  // CAShapeLayer *shapeLayer = [[CAShapeLayer alloc] initWithLayer:mskLayer];
139  // self.layer.mask = shapeLayer;
140  self.layer.contentsGravity = kCAGravityCenter;
141  }
142 @end