所以我需要创建一个简单的动画,其中视图飞出屏幕,然后根据用户手势再次飞回。我的动画代码(如下)效果很好。实际上它工作得有点太好了。请注意在 enterStage 方法中我如何不重新定位视图。我只是将它的比例设置为 1。视图飞入并在它的原始位置结束就好了。如果我改为使用 CGAffineTransformMakeTranslation 并且不进行缩放,它也可以完美运行。我预计我需要自己跟踪原始大小和位置,但似乎这对我来说有点怪异。
这很神秘。
这些关于原始大小和位置的数据保存在哪里?如果我愿意,我将如何禁用此行为 - 就像我希望视图不记住其原始位置一样?
-(void) exitStage{
[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
CGAffineTransform t = CGAffineTransformMakeTranslation(0, -1000);
self.transform = CGAffineTransformScale (t, 10.0, 10.0);
}
completion:^(BOOL finished){
}];
}
-(void) enterStage{
[UIView animateWithDuration:0.5
delay:0
options:UIViewAnimationOptionBeginFromCurrentState
animations:(void (^)(void)) ^{
//self.transform = CGAffineTransformMakeTranslation(0, self.originalYcoord);
self.transform = CGAffineTransformMakeScale(1,1);
}
completion:^(BOOL finished){
}];
}