2013-12-17 5 views
0

Ive получил небольшой прямоугольный вид, который анимируется вниз с вершины моего приложения. Мне нужно, чтобы он находился на самом верху экрана и анимировал вниз по строке состояния, однако анимированное представление появляется в строке состояния. Кто-нибудь знает, как я могу получить его в строке статуса?Добавление надстройки над строкой состояния iOS 7

вот что в настоящее время

[self.navigationController.view addSubview:self.headerView]; 

Он прекрасно работает и находится в правильном положении, КРОМЕ за то его под строку состояния Im делает. Есть идеи?

Редактировать: Я знаю, что это возможно, потому что snapchat делает это.

+0

Вы не можете положить что-нибудь по строке состояния. Лучшее, что вы можете сделать, это отключить его, пока изображение отображается на экране, а затем снова включить, когда вы удаляете subview. – nhgrif

+0

@nhgrif Как я могу динамически отключить его и снова включить? Ive посмотрел сообщения, в которых упоминается добавление чего-либо в файл plist, но мне нужно его всего 5 секунд на определенном контроллере просмотра, а не на всем моем приложении. – Stonep123

+0

Один из параметров plist, я считаю, позволяет отдельным контроллерам вида отключить его или самостоятельно. – nhgrif

ответ

1

Один из вариантов вы можете сделать это, когда вы оживляющий headerView твоего,

  1. тейк снимок статусной
  2. скрыть статусную
  3. добавить подвид зрения снимка на позиции STATUSBAR
  4. сделать анимацию заголовка заголовка над снимком моментального снимка
  5. удалить снимок и снова отобразить строку состояния.

Таким образом, вы можете получить приятную анимацию, которая выглядит так, как будто она работает над панелью состояния.

Edit: Я попытаюсь объяснить в псевдокоде

// 1. take snapshot of the status bar 
UIView* snapshotView = [[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO]; 

// 2. hide statusbar 
_statusBarHidden = YES; 
[self setNeedsStatusBarAppearanceUpdate]; 

// you need to set "View controller-based status bar appearance" option to yes on plist 
- (BOOL)prefersStatusBarHidden 
{ 
    return _statusBarHidden; 
} 

// 3. add subview of snapshot view on the statusbar position 
CGRect frame = self.view.frame; 
frame.height = [[UIApplication sharedApplication] statusBarFrame].size.height; 
[self.view addSubView:snapshotView]; 

// 4. do the header view animation over snapshot view 
.. Just do the animation you already were doing 

// 5. remove snapshot view and show statusbar again. 
[snapshotView removeFromSuperview]; 

_statusBarHidden = NO; 
[self setNeedsStatusBarAppearanceUpdate]; 
+0

Как сделать снимок бара? – Stonep123

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