2013-02-17 7 views
2

У меня есть UIView уже на моем экране, и я хочу «вставить» новый UIView из одного из четырех направлений (влево, вправо, вверх, вниз) в зависимости от того, какой тип из swipegesture, который я обнаруживаю. Получение информации о swipegesture уже сделано и не проблема, но теперь, скажем, если я проведите по левому краю, я хочу, чтобы другой экземпляр UIView «скользил» справа.iOS - правильно анимация между двумя UIViews с использованием CATransition

В частности, по мере того, как новый UIView сдвигается с правой стороны, старый UIView начинает скользить из вида, сдвигая влево, пока он полностью не выходит из вида. Другими словами, я хотел бы иметь эффект taht, вы можете видеть оба UIView во время анимации, пока оригинальный UIView больше не будет виден. Эффект такого же типа можно увидеть на вашем iPad, например, когда вы находитесь на своем главном экране, и вы проведите пальцем влево - что слайд на другом экране значков приложений справа, так как ваш домашний экран скользит вне поля зрения оставил. Единственное предостережение, которое я хотел бы достичь, - это то, что вы не можете остановить переходный поток.

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

UIView *newView = [[UIView alloc] init]; 
    newView.frame = CGRectMake(0, 0, TileView.frame.size.width, TileView.frame.size.height); 
    [TileView addSubView:view]; 
    CATransition *transitionAnimation = [CATransition animation]; 
    [transitionAnimation setDuration:1]; 
    [transitionAnimation setType:kCATransitionPush]; 
    [transitionAnimation setSubtype:kCATransitionFromRight]; 
    [transitionAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; 

UIView TileView является subview моего viewController. Есть ли какие-либо другие настройки для newView, чтобы все соответствовало размеру экрана? I думаю, что KCATransitionPush - это тип анимации, которую я ищу, но не уверен на 100%.

Любая помощь в том, что мне не хватает здесь, будет полезна.

ответ

0

попытаться установить эти два свойства также ....

transitionAnimation.fromValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(0.0, 0.0, 0.0)]; 
transitionAnimation.toValue=[NSValue valueWithCATransform3D:CATransform3DMakeTranslation(excursion, 0.0, 0.0)]; 
Смежные вопросы