2
所以我需要創建一個簡單的動畫,其中一個視圖從屏幕上飛下來,然後再次基於用戶手勢飛回來。我的動畫代碼(如下)效果非常好。其實它有點太好了。請注意,enterStage方法中我沒有重新定位視圖。我只是將它的比例設置爲1.視圖飛入並且處於原始位置就好了。如果我改用CGAffineTransformMakeTranslation而不做縮放,它也可以很好地工作。我預計我需要跟蹤自己的原始大小和位置,但看起來好像這件事對我來說有點神祕。UIView animateWithDuration返回原始狀態
這是神祕的。
這是關於原始大小和位置的數據保存在哪裏? 如果我想要如何禁用此行爲 - 就像我希望視圖不記得其原始位置一樣?
-(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){
}];
}
+1,是啊,這一個。 – 2013-03-28 15:42:10
...但是那裏的信息被保存在哪裏? UIView的框架是否保持不變,並且不會被變換修改?我沒有檢查過。 – NFG
信息保存在變換屬性中,當操作系統去繪製對象時,它將變換應用於任何需要繪製的東西 –