2013-10-04 12 views
10

Od momentu pojawienia się iOS 7 nie mogę pokazać ani ukryć paska stanu z animacją, tak jak w iOS 6. Na razie używam NSTimer do kontrolowania kiedy się ukryć.Jak ukryć pasek stanu z animacją w iOS 7?

tutaj jest mój kod:

- (void)hideStatusBar{ 
    _isStatusBarHidden=YES; 
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; 
} 
- (void)showStatusBar{ 
_isStatusBarHidden=NO; 
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)]; 
} 
    //=================== 
_controlVisibilityTimer = [[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(hideStatusBar:) userInfo:nil repeats:NO] retain]; 

Ale niestety droga pasku stanu ukrycia wydaje się trochę szorstki, nie zanika. Czy ktoś tam ma na to rozwiązanie?

Aktualizacja

I rozwiązać problem ukrycia, używając @hahaha rozwiązanie. Potrzebuję tylko widoku, aby być tłem paska statusu, tutaj jest mój kod.

AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication]delegate]; 

self.StatusBarOrange = [[UIView alloc] initWithFrame:CGRectMake(0, 0, appDelegate.window.frame.size.width, 20)];  
[self.StatusBarOrange setBackgroundColor:[UIColor orangeColor]]; 
[appDelegate.window.rootViewController.view addSubview:self.StatusBarOrange]; 

i teraz wszystko działa idealnie!

+0

+1 do aktualizacji z ostatecznego rozwiązania! dziękuję za wniesienie wkładu! – eric

+0

nie ma za co! – xeravim

Odpowiedz

33

Trzeba zadzwonić

[UIViewController setNeedsStatusBarAppearanceUpdate]; 

od wewnątrz bloku animacji, jak w poniższym przykładzie:

@implementation SomeViewController { 
    BOOL _statusBarHidden; 
} 

- (BOOL)prefersStatusBarHidden { 
    return _statusBarHidden; 
} 

- (void)showStatusBar:(BOOL)show { 
[UIView animateWithDuration:0.3 animations:^{ 
     _statusBarHidden = !show; 
     [self setNeedsStatusBarAppearanceUpdate]; 
    }]; 
} 

@end 
+0

To niesamowite, że to wiesz, dzięki! Wygląda na to, że setStatusBarHidden: YES w zasadzie nie robi nic w iOS5. Dzięki jeszcze raz. – Fattie

Powiązane problemy