Хотите отобразить «Вид меню кнопок» в нижней части iphone - PullRequest
0 голосов
/ 24 июня 2009

Мне нужно настроить страницу, где в любом случае настраиваемая «панель меню кнопок» была видна снизу, как одно из приложений «Twitterrific» (см. Скриншот) Я пытался реализовать с помощью свойств modalViewController, но он заполняет мое настраиваемое представление на весь экран, и мое родительское представление исчезает в фоновом режиме.

Фрагмент кода:

MyCustomizableButtonMenuContoller *buttonMenucontroller = 
    [[MyCustomizableButtonMenuContoller alloc] init];

// To show my customizable button menu from bottom at parent view on any event.
[self presentModalViewController:buttonMenucontroller animated:YES];

//To hide customizable button menu.
[self dismissModalViewConrollerAnimated:YES];

Я также пытался сделать прозрачным свой настраиваемый вид меню кнопок, но он не работает по моему требованию. Кажется, я ищу таблицу UIActions, но опять же можно ли настроить кнопки с изображениями? Если есть другие способы достижения сценария на снимке экрана, пожалуйста, дайте мне знать о ваших выводах или идеях.

Скриншот:

Скриншот Twitterrific http://scaline3.appspot.com/Button_menu_pane.png

Ответы [ 2 ]

3 голосов
/ 25 июня 2009

Вы не хотите использовать модальный контроллер представления для этого. Вы не можете достичь этого эффекта «частичного наложения» таким образом, потому что iPhone OS делает несколько предположений о представлениях вложенных контроллеров представления.

Вместо этого вам нужно создать UIView с несколькими UIB-кнопками внутри, которые изначально скрыты в нижней части вашего основного вида. Когда пользователь нажимает кнопку настройки, вам необходимо анимировать вид вверх на свое место. Панель будет частью вашего основного контроллера, но ваш код не должен сильно отличаться.

Если вы только начинаете работать с Objective-C, вам следует прочитать документацию по Core Animation. Вы должны быть в состоянии оживить представление с помощью очень и очень небольшого кода. Вот пример:

[UIView beginAnimations:nil context: nil];
[UIView setAnimationDuration: 0.5];
[myDetailPane setFrame:CGRectMake(0, [self bounds].size.height - [myDetailPane bounds].size.height, [myDetailPane bounds].size.width, [myDetailPane bounds].size.height)];
[UIView commitAnimations];

Нет необходимости в таймерах или постепенном перемещении вида - система позаботится об этом.

0 голосов
/ 25 июня 2009

Пример Apple в своей документации, похоже, использует навигационные контроллеры. Это может вам помочь: Использование контроллеров модального представления

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...