2013-02-15 1 views
3

Возможно ли создать пользовательскую анимацию контроллера представления вида, например изображение? Основная идея состоит в том, чтобы надавить на просмотр в обычном режиме, но не перемещая текущий вид (который вызывает pushViewController...).Нажатие контроллера просмотра с пользовательской анимацией

ex

ответ

0

Конечно, это может быть сделано. Я сделал проект, в котором я сделал это так:

-(void)slideInController:(RDSlideController *) next { 
    next.presentingVC = self; 
    next.view.frame = CGRectMake(self.view.frame.origin.x + 320, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height); 
    [self.view.window addSubview:next.view]; 
    [UIView animateWithDuration:slideTime animations:^{ 
     next.view.frame = self.view.frame; 
    } completion:^(BOOL finished) { 
     self.view.window.rootViewController = next; 
    }]; 
} 

Контроллеры вид, что я скользнул в были подклассы RDSlideController (так что я мог бы иметь свойство presentingVC и некоторые другие вещи), но это на самом деле не нужно. В принципе, вы просто создаете экземпляр нового контроллера, устанавливаете рамку своего представления на экран справа, добавляете это представление в окно, а затем анимируете кадр в рамку текущего представления. Наконец, вы выключаете контроллеры представлений, чтобы новый был теперь контроллером корневого представления окна.

+0

slideTime почти всегда занимает 0.4 секунды в iOS. –

+0

Вот и ответ. Я не знал свойство [UIView window]. Благодарю. :-) – 2013-02-15 12:48:43

+0

Есть ли простой способ уволить или мне придется переместить рамку представления вне экрана? – 2013-02-16 01:51:17

0

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