2009-03-09 4 views
7

Я могу анимировать добавление UIView к моему приложению, это выглядит очень красиво, так что спасибо яблоку.Удалить UIVIew из SuperView с анимацией

Однако, как я могу изменить удаление этого вида из супер-представления?

Я использую:

CATransition *animation = [CATransition animation]; 
[animation setDuration:1]; 
[animation setType:kCATransitionReveal]; 
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]]; 
[[myview layer] addAnimation:animation forKey:kCATransitionReveal]; 

оживить «в» переходе ... Как вы анимировать «из» перехода ????

ответ

24

Анимация вашего просмотра, чтобы она перемещалась за пределы экрана/сжималась/расширялась/исчезала, а затем выполнялась фактическая съемка, когда анимация заканчивается.

Вы можете сделать это, изменив свойства вида (положение/размер/смещение) между блоком beginAnimations/commitAnimations. Затем UIKit будет анимировать эти свойства за указанное время.

E.g something like;

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationDuration:0.30f]; 
view.transform = 
    CGAffineTransformMakeTranslation(
    view.frame.origin.x, 
    480.0f + (view.frame.size.height/2) // move the whole view offscreen 
); 
background.alpha = 0; // also fade to transparent 
[UIView commitAnimations]; 

В уведомлении о завершении анимации вы можете удалить вид.

+0

спасибо! Я полагаю, что это мой вопрос: как я аниматирую представление, показывающее, что он движется за кадром? –

+2

Ahh, ответьте на обновление, чтобы уточнить .. Не нужно понижать уровень! –

+0

Ahhhh ... спасибо человеку, я очень ценю это. так странно, что внеэкранный переход не запекается. оцените помощь! –

Смежные вопросы