Procházet zdrojové kódy

Fix topBar background color animation on iOS 13

yogevbd před 5 roky
rodič
revize
0c6e2f00b1
2 změnil soubory, kde provedl 8 přidání a 4 odebrání
  1. 0
    2
      lib/ios/UINavigationBar+utils.h
  2. 8
    2
      lib/ios/UINavigationBar+utils.m

+ 0
- 2
lib/ios/UINavigationBar+utils.h Zobrazit soubor

4
 
4
 
5
 - (void)rnn_setBackgroundColor:(UIColor *)color;
5
 - (void)rnn_setBackgroundColor:(UIColor *)color;
6
 
6
 
7
-- (void)rnn_setBackgroundColorTransparent;
8
-
9
 - (void)rnn_setBackIndicatorImage:(UIImage *)image;
7
 - (void)rnn_setBackIndicatorImage:(UIImage *)image;
10
 
8
 
11
 - (void)rnn_showBorder:(BOOL)showBorder;
9
 - (void)rnn_showBorder:(BOOL)showBorder;

+ 8
- 2
lib/ios/UINavigationBar+utils.m Zobrazit soubor

29
 
29
 
30
 - (void)setBackgroundColor:(UIColor *)color {
30
 - (void)setBackgroundColor:(UIColor *)color {
31
     if (@available(iOS 13.0, *)) {
31
     if (@available(iOS 13.0, *)) {
32
-        [self configureWithDefaultBackground];
33
         [self getNavigaitonBarStandardAppearance].backgroundColor = color;
32
         [self getNavigaitonBarStandardAppearance].backgroundColor = color;
34
         [self getNavigaitonBarCompactAppearance].backgroundColor = color;
33
         [self getNavigaitonBarCompactAppearance].backgroundColor = color;
35
         [self getNavigaitonBarScrollEdgeAppearance].backgroundColor = color;
34
         [self getNavigaitonBarScrollEdgeAppearance].backgroundColor = color;
41
 
40
 
42
 - (void)setBackgroundColorTransparent {
41
 - (void)setBackgroundColorTransparent {
43
     if (@available(iOS 13.0, *)) {
42
     if (@available(iOS 13.0, *)) {
44
-        [self configureWithTransparentBackground];
43
+        UIColor* clearColor = [UIColor clearColor];
44
+        [self getNavigaitonBarStandardAppearance].backgroundColor = clearColor;
45
+        [self getNavigaitonBarCompactAppearance].backgroundColor = clearColor;
46
+        [self getNavigaitonBarScrollEdgeAppearance].backgroundColor = clearColor;
47
+        [self getNavigaitonBarStandardAppearance].backgroundEffect = nil;
48
+        [self getNavigaitonBarCompactAppearance].backgroundEffect = nil;
49
+        [self getNavigaitonBarScrollEdgeAppearance].backgroundEffect = nil;
50
+        
45
     } else {
51
     } else {
46
         if (![self viewWithTag:TOP_BAR_TRANSPARENT_TAG]){
52
         if (![self viewWithTag:TOP_BAR_TRANSPARENT_TAG]){
47
             UIView *transparentView = [[UIView alloc] initWithFrame:CGRectZero];
53
             UIView *transparentView = [[UIView alloc] initWithFrame:CGRectZero];