Плавный UIView - PullRequest
       6

Плавный UIView

0 голосов
/ 18 сентября 2009

Я ищу способ сделать систему меню моего (самого первого) приложения более плавной. В настоящее время в IB есть встроенный вид панорамы, ширина которого ~ 1900 пикселей, а высота 480. Сверху это 8 кнопок в разных местах вдоль вида / изображения, когда одна из кнопок выбрана, я обновляю «xPoint» и вызываю нижеприведенное ниже, чтобы обновить то, что на экране (движение между 400-600px каждый раз, когда нажимается кнопка Продолжительность 1-2 секунды):

-(void)moveView:(NSNumber *)duration{
    [UIView beginAnimations:nil context:NULL];{
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [UIView setAnimationDuration:[duration floatValue]];
        [UIView setAnimationDelegate:self];     
        viewRect = self.view.frame;
        viewRect.origin.x = xPoint;
        self.view.frame = viewRect;     
    } [UIView commitAnimations];    
}

Я установил все в IB непрозрачным и снял флажок «Очистить контекст перед рисованием» для каждой кнопки / изображения. На 3GS это кажется более плавным, чем на устройстве 3G, но все же не идеальным - все еще заикается на анимации.

Есть ли лучший способ сделать это? Если нет, то есть ли способ оптимизировать / сгладить анимацию движения?

1 Ответ

1 голос
/ 18 сентября 2009

Вы обязательно должны использовать инструменты для устранения этой проблемы (если у кого-то нет ответа сразу). вы можете легко отлаживать частоту кадров + посмотреть, какие слои являются непрозрачными / прозрачными (с помощью опции «смешанные слои» в инструменте Core Animation ..

Кроме того, одновременно измерьте активность других устройств (это может быть проблемой).

В качестве крайней меры вы также можете использовать изображение для отображения кнопок. Создайте «скриншот» меню и сделайте ЭТО слайд (это только один элемент, UIImageView). После (или непосредственно перед) анимации вы можете быстро заменить UIImageView реальным UIView, включая кнопки.

Я полагаю, что Apple также использует (форму) этого трюка при выходе из приложения; Вы видите, что приложение становится все меньше и меньше, пока не исчезнет.

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