Ran Greenberg преди 7 години
родител
ревизия
f34383695a
променени са 1 файла, в които са добавени 16 реда и са изтрити 1 реда
  1. 16
    1
      ios/RCCViewController.m

+ 16
- 1
ios/RCCViewController.m Целия файл

288
   }];
288
   }];
289
 }
289
 }
290
 
290
 
291
+// fix iOS11 safeArea - https://github.com/facebook/react-native/issues/15681
292
+// rnn issue - https://github.com/wix/react-native-navigation/issues/1858
293
+- (void)_traverseAndFixScrollViewSafeArea:(UIView *)view {
294
+#ifdef __IPHONE_11_0
295
+  if ([view isKindOfClass:UIScrollView.class]) {
296
+    [((UIScrollView*)view) setContentInsetAdjustmentBehavior:UIScrollViewContentInsetAdjustmentNever];
297
+  }
298
+  
299
+  [view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
300
+    [self _traverseAndFixScrollViewSafeArea:obj];
301
+  }];
302
+#endif
303
+  
304
+}
305
+
291
 - (void)viewDidAppear:(BOOL)animated
306
 - (void)viewDidAppear:(BOOL)animated
292
 {
307
 {
293
   [super viewDidAppear:animated];
308
   [super viewDidAppear:animated];
294
-  
295
   [self sendGlobalScreenEvent:@"didAppear" endTimestampString:[self getTimestampString] shouldReset:YES];
309
   [self sendGlobalScreenEvent:@"didAppear" endTimestampString:[self getTimestampString] shouldReset:YES];
296
   [self sendScreenChangedEvent:@"didAppear"];
310
   [self sendScreenChangedEvent:@"didAppear"];
297
   
311
   
300
 - (void)viewWillAppear:(BOOL)animated
314
 - (void)viewWillAppear:(BOOL)animated
301
 {
315
 {
302
   [super viewWillAppear:animated];
316
   [super viewWillAppear:animated];
317
+  [self _traverseAndFixScrollViewSafeArea:self.view];
303
   [self sendGlobalScreenEvent:@"willAppear" endTimestampString:[self getTimestampString] shouldReset:NO];
318
   [self sendGlobalScreenEvent:@"willAppear" endTimestampString:[self getTimestampString] shouldReset:NO];
304
   [self sendScreenChangedEvent:@"willAppear"];
319
   [self sendScreenChangedEvent:@"willAppear"];
305
   [self setStyleOnAppear];
320
   [self setStyleOnAppear];