Лучший способ создать меню, которое прокручивается снизу вверх? - PullRequest
0 голосов
/ 21 февраля 2012

Я довольно новичок в программировании для iPhone, и я делаю довольно простое приложение. В любом случае, я просто хочу знать, как создать меню, которое прокручивается снизу вверх (начиная с верхней части панели вкладок) и отображает несколько вариантов. Я приложил картинку, которая помогает лучше понять, что я имею в виду. Я предполагаю, что мне нужно создать какое-то подпредставление, а затем добавить к нему анимацию, но я бы хотел получить ваш совет о том, как лучше начать. Спасибо

Home Screen Menu

Ответы [ 3 ]

1 голос
/ 21 февраля 2012

Самое простое решение - использовать UIActionSheet без изменений.

Если это не то, что вам нужно, всегда можно использовать модальный контроллер вида.

Если, однако,Вы хотите что-то, что не будет покрывать весь экран, и может иметь индивидуальный вид, основная идея такова:

  1. Создайте свой вид с рамкой, которая находится внизу вашего основного вида.(например, на 0,406).
  2. При желании отключить взаимодействие с пользователем с основным видом
  3. Используйте анимацию UIView для перемещения вверх

Код будет выглядеть примерно так:

UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, self.view.bounds.size.width, kCustomViewHeight)];
[self.view addSubview:customView];

[UIView animateWithDuration:0.2 animations:^{
  CGRect f = customView.frame;
  f.origin.y -= kCustomViewHeight;
  customView.frame = f;
}];
0 голосов
/ 21 февраля 2012

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

Создание подкласса UIActionSheet, реализующего протоколы UITableViewDelegate и UITableViewDataSource. В методе - (id)init этого класса добавьте UITableView в качестве подпредставления с self в качестве делегата и источника данных.

Затем на главном экране вызовите свой пользовательский лист UIActionSheet с showInView:.

Используйте делегатов, чтобы перезвонить на главный экран, чтобы сообщить ему, когда пользователь выбирает опцию, затем используйте [myCustomMenu dismissWithClickedButtonIndex:0 animated:YES], чтобы скрыть меню.

0 голосов
/ 21 февраля 2012

Я сам этого не делал, но увидел классный исходный код, где он был выполнен с помощью UIScrollView (по умолчанию расположен «под» экраном), содержащий UITableView и кнопку (которая была показана нанижняя часть экрана).ScrollView получал команду на перемещение после нажатия этой кнопки (в IBAction ее).
Короче, попробуйте взглянуть на UIScrollView (поиграйте с UITableView в нем).

...