@@ -26,6 +26,8 @@ @interface UINavigationController ()
26
26
27
27
@implementation UINavigationController (Chameleon)
28
28
29
+ @dynamic hidesNavigationBarHairline;
30
+
29
31
#pragma mark - Swizzling
30
32
31
33
+ (void )load {
@@ -60,24 +62,35 @@ + (void)load {
60
62
}
61
63
62
64
- (void )chameleon_viewDidLoad {
65
+
63
66
[self chameleon_viewDidLoad ];
64
67
65
- UIView *heairlineImageView = [self findHairlineImageViewUnder: self .navigationBar];
66
- if (heairlineImageView) {
67
- heairlineImageView.hidden = YES ;
68
+ UIView *hairlineImageView = [self findHairlineImageViewUnder: self .navigationBar];
69
+
70
+ if (hairlineImageView) {
71
+
72
+ if (self.hidesNavigationBarHairline ) {
73
+ hairlineImageView.hidden = YES ;
74
+
75
+ } else {
76
+ hairlineImageView.hidden = NO ;
77
+ }
68
78
}
69
79
}
70
80
71
81
- (UIImageView *)findHairlineImageViewUnder : (UIView *)view {
82
+
72
83
if ([view isKindOfClass: UIImageView.class] && view.bounds .size .height <= 1.0 ) {
73
84
return (UIImageView *)view;
74
85
}
86
+
75
87
for (UIView *subview in view.subviews ) {
76
88
UIImageView *imageView = [self findHairlineImageViewUnder: subview];
77
89
if (imageView) {
78
90
return imageView;
79
91
}
80
92
}
93
+
81
94
return nil ;
82
95
}
83
96
@@ -107,6 +120,34 @@ - (BOOL)shouldUseLightContent {
107
120
return [number boolValue ];
108
121
}
109
122
123
+ - (void )setHidesNavigationBarHairline : (BOOL )hidesNavigationBarHairline {
124
+
125
+ NSNumber *number = [NSNumber numberWithBool: hidesNavigationBarHairline];
126
+ objc_setAssociatedObject (self, @selector (hidesNavigationBarHairline ), number, OBJC_ASSOCIATION_RETAIN );
127
+
128
+ // Find Hairline Image
129
+ UIView *hairlineImageView = [self findHairlineImageViewUnder: self .navigationBar];
130
+
131
+ // Check if it exists
132
+ if (hairlineImageView) {
133
+
134
+ // Check if we should hide it or not
135
+ if (hidesNavigationBarHairline) {
136
+ hairlineImageView.hidden = YES ;
137
+
138
+ } else {
139
+ hairlineImageView.hidden = NO ;
140
+ }
141
+ }
142
+ }
143
+
144
+ - (BOOL )hidesNavigationBarHairline {
145
+
146
+ NSNumber *number = objc_getAssociatedObject (self, @selector (hidesNavigationBarHairline ));
147
+ return [number boolValue ];
148
+ }
149
+
150
+
110
151
#pragma mark - Public Methods
111
152
112
153
- (void )setStatusBarStyle : (UIStatusBarStyle)statusBarStyle {
@@ -129,7 +170,6 @@ - (void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle {
129
170
}
130
171
}
131
172
132
-
133
173
#pragma mark - Private Methods
134
174
135
175
- (UIStatusBarStyle)preferredStatusBarStyle {
0 commit comments