2013-09-27 1 views
9

Мне интересно реализовать левое меню в моем приложении. Я использовал NVSlideMenuController для него. и он отлично работает.хотите выполнить меню раздвижной стороны со скользящей статусной полосой. в iOS

Но я хочу изменить его. Я хочу переместить строку состояния с помощью contentViewController и не хочу, чтобы строка состояния отображалась в MenuViewController.

в настоящее время это будет выглядеть как на изображении ниже

enter image description here

и я хочу так же, как показано ниже изображения

enter image description here

Заранее спасибо

+1

Перемещение строки состояния может быть «переехал» в действительности, но только через некоторые манипуляции. См. [This SO post] (http://stackoverflow.com/a/19011013/2740693) –

+1

Возможный дубликат [Перемещение строки состояния в iOS 7] (http://stackoverflow.com/questions/19007694/moving-status- bar-in-ios-7) – codercat

ответ

11

вы можете попробовать выключить 3G на втором изображении, вы заметите, что STATUSBAR не обновлялись.

Похоже, новый API в iOS7

[[UIScreen mainScreen] snapshotViewAfterScreenUpdates:NO]; 

Это может быть тот же вопрос, который вы задаете, и есть демонстрация, чтобы показать, что вы хотите.

Moving status bar in iOS 7

1

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

- (void) viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    if (animated) 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
    } 
    else 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:YES]; 
    } 
} 

- (void) viewWillDisappear:(BOOL)animated 
{ 
    [super viewWillDisappear:animated]; 

    if (animated) 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide]; 
    } 
    else 
    { 
     [[UIApplication sharedApplication] setStatusBarHidden:NO]; 
    } 
} 

Попробуйте поэкспериментировать с различными значениями UIStatusBarAnimation, чтобы увидеть, что выглядит лучше. Существует три значения: UIStatusBarAnimationNone, UIStatusBarAnimationFade и UIStatusBarAnimationSlide`.

+0

Вы видели приложение почтового ящика, в котором строка состояния сдвигается при открытии меню слева. и я хочу того же. – Pratik

+0

Существует свойство UIApplication, называемое statusBarFrame ([[UIApplication sharedApplication] .statusBarFrame). Вы можете попробовать сделать это в контексте изображения CG и создать изображение с этим изображением, затем скрыть строку состояния и перемещать изображение.Это приведет к «подделке» строки состояния, но не отображает динамический контент. – paulrehkugler

+0

Или вы можете попробовать hitTest: -иметь попытку получить представление о строке состояния. Это то, что Apple, вероятно, не хочет, чтобы вы делали, так что это будет сложно. – paulrehkugler

2

Вы можете быть в состоянии сделать это, приковав рамку keyWindow (вы можете получить это с [[UIApplication sharedApplication] keyWindow] (UIWindow подкласс UIView). Это должно двигаться все в порядке, и вы, возможно, потребуется сделать еще UIWindow принести другой материал на с левой стороны.

0

Это не ответ, но ответ на ответ Джеймса, потому что перерывы форматирования на комментарий.

Дело в том, что установка рамки ключаWindow не сможет перемещать строку состояния. Установив точку останова и распечатав рекурсивное описание keyWindow, мы заметим, что внутри нет строки состояния.

(lldb) po [[[UIApplication sharedApplication] keyWindow] recursiveDescription] 
<UIWindow: 0x8c5bf80; frame = (0 0; 320 480); gestureRecognizers = <NSArray: 0x8c5c500>; layer = <UIWindowLayer: 0x8c5c0a0>> 
    | <UIView: 0x8b49700; frame = (0 0; 320 480); autoresize = W+H; layer = <CALayer: 0x8b496b0>> 
(lldb) 

Follow Chris's ссылка Simon's ответ делает работу

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