Как они это делают? ... избегая скучного, стандартного приложения для iPhone - PullRequest
3 голосов
/ 17 января 2011

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

Лучший пример пользовательского интерфейса, к которому я обращаюсь, - это одно из моих любимых приложений, iThoughts mind mapper (см. Ниже). Как это сделать? Я действительно хочу узнать, как профессионалы создают такие красивые приложения. Большая часть помощи, которую я нахожу, указывает мне направление стандартного UITabbar, UIToolbar и т. Д. Yawn.

Спасибо!

alt text alt text

Ответы [ 2 ]

4 голосов
/ 17 января 2011

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

1 голос
/ 17 января 2011

Допущения:

  • Вы хотите анимировать представление с именем toolbar.
  • Вы сохранили координаты кадра для вида панели инструментов для его внеэкранного состояния в CGRect toolbarFrameWhenHiddenимущество.Соответственно, CGRect toolbarFrameWhenShown содержит координаты кадра для отображаемого состояния.
  • У вас есть свойство BOOL toolbarHidden, которое указывает текущее состояние панели инструментов.
  • Вы подключили элемент управления, который пользовательследует нажать, чтобы показать / скрыть панель инструментов для действия toggleToolbar:.

Код:

- (IBAction) toggleToolbar:(id)sender
{
    CGRect targetFrame = self.toolbarHidden ? self.toolbarFrameWhenShown : self.toolbarFrameWhenHidden;
    [UIView animateWithDuration:0.25 animations:^{
        self.toolbar.frame = targetFrame;
    }];
    self.toolbarHidden = !self.toolbarHidden;
}
...