2013-10-04 2 views
10

Поскольку iOS 7 выкатился, я не могу показать или скрыть строку состояния с анимацией, как в iOS 6. На данный момент я использую NSTimer для управления им, когда спрятаться.Как скрыть строку состояния с анимацией в iOS 7?

вот мой код:

- (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]; 

Но, к сожалению, путь в строке состояния бегах кажется немного грубо, не исчезает. У кого-то есть решение?

Обновление

Я решил проблему тайника, используя @hahaha решения. Мне просто нужно, чтобы представление было фоном строки состояния, вот мой код.

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]; 

и теперь все работает отлично!

+0

+1 для обновления с вашего окончательного решения! спасибо за вклад! – eric

+0

добро пожаловать! – xeravim

ответ

33

Вам нужно позвонить

[UIViewController setNeedsStatusBarAppearanceUpdate]; 

изнутри анимационного блока, как показано в следующем примере:

@implementation SomeViewController { 
    BOOL _statusBarHidden; 
} 

- (BOOL)prefersStatusBarHidden { 
    return _statusBarHidden; 
} 

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

@end 
+0

Удивительно, что вы это знаете, спасибо! Кажется, что setStatusBarHidden: ДА по существу ничего не делает в iOS5. Еще раз спасибо. – Fattie

Смежные вопросы