|
@@ -2,6 +2,7 @@
|
2
|
2
|
#import <React/RCTConvert.h>
|
3
|
3
|
|
4
|
4
|
const NSInteger BLUR_STATUS_TAG = 78264801;
|
|
5
|
+const NSInteger BLUR_TOPBAR_TAG = 78264802;
|
5
|
6
|
|
6
|
7
|
@implementation RNNNavigationOptions
|
7
|
8
|
|
|
@@ -27,6 +28,7 @@ const NSInteger BLUR_STATUS_TAG = 78264801;
|
27
|
28
|
self.rightButtons = [navigationOptions objectForKey:@"rightButtons"];
|
28
|
29
|
self.topBarNoBorder = [navigationOptions objectForKey:@"topBarNoBorder"];
|
29
|
30
|
self.tabBarHidden = [navigationOptions objectForKey:@"tabBarHidden"];
|
|
31
|
+ self.topBarBlur = [navigationOptions objectForKey:@"topBarBlur"];
|
30
|
32
|
|
31
|
33
|
return self;
|
32
|
34
|
}
|
|
@@ -137,7 +139,31 @@ const NSInteger BLUR_STATUS_TAG = 78264801;
|
137
|
139
|
}
|
138
|
140
|
}
|
139
|
141
|
}
|
140
|
|
-
|
|
142
|
+
|
|
143
|
+ if (self.topBarBlur && [self.topBarBlur boolValue]) {
|
|
144
|
+
|
|
145
|
+ if (![viewController.navigationController.navigationBar viewWithTag:BLUR_TOPBAR_TAG]) {
|
|
146
|
+
|
|
147
|
+ [viewController.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
|
|
148
|
+ viewController.navigationController.navigationBar.shadowImage = [UIImage new];
|
|
149
|
+ UIVisualEffectView *blur = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]];
|
|
150
|
+ CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
|
|
151
|
+ blur.frame = CGRectMake(0, -1 * statusBarFrame.size.height, viewController.navigationController.navigationBar.frame.size.width, viewController.navigationController.navigationBar.frame.size.height + statusBarFrame.size.height);
|
|
152
|
+ blur.userInteractionEnabled = NO;
|
|
153
|
+ blur.tag = BLUR_TOPBAR_TAG;
|
|
154
|
+ [viewController.navigationController.navigationBar insertSubview:blur atIndex:0];
|
|
155
|
+ [viewController.navigationController.navigationBar sendSubviewToBack:blur];
|
|
156
|
+ }
|
|
157
|
+
|
|
158
|
+ } else {
|
|
159
|
+ UIView *blur = [viewController.navigationController.navigationBar viewWithTag:BLUR_TOPBAR_TAG];
|
|
160
|
+ if (blur) {
|
|
161
|
+ [viewController.navigationController.navigationBar setBackgroundImage: nil forBarMetrics:UIBarMetricsDefault];
|
|
162
|
+ viewController.navigationController.navigationBar.shadowImage = nil;
|
|
163
|
+ [blur removeFromSuperview];
|
|
164
|
+ }
|
|
165
|
+ }
|
|
166
|
+
|
141
|
167
|
}
|
142
|
168
|
|
143
|
169
|
@end
|