0
我正試圖找到一種方法來爲UIView的3D旋轉創建動畫。如果選擇「橫幅」樣式,我希望它看起來像推送通知的動畫。我試圖使用類似UIView的真實3D旋轉動畫
CABasicAnimation *anim = [CABasicAnimation animationWithKeyPath:@"transform"];
CATransform3D t = CATransform3DIdentity;
t = CATransform3DTranslate(t, 0, -self.bounds.size.height/2, 0);
t = CATransform3DRotate(t, M_PI_2, 1, 0, 0);
t = CATransform3DTranslate(t, 0, -self.bounds.size.height/2, 0);
[anim setFromValue:[NSValue valueWithCATransform3D:CATransform3DIdentity]];
[anim setToValue:[NSValue valueWithCATransform3D:t]];
anim.removedOnCompletion = NO;
[anim setDuration:0.25];
anim.fillMode = kCAFillModeForwards;
anim.delegate = self;
[self.layer addAnimation:anim forKey:@"Rotation"];
但是,這看起來很平坦,並不像推送通知的橫幅那麼逼真的3D。我怎樣才能讓這個動畫更逼真?
現實主義的主要部分是你缺少視角。設置't.m34 = -1.0/500.0;'開始轉換之前(你可以在[這篇文章的最後](http://ronnqvi.st/the-math-behind-transforms/) 。除此之外,動畫翻譯 - 旋轉 - 翻譯將在一條直線上完成(你可以看到我在說什麼[這裏](http://ronnqvi.st/translate-rotate-translate/)) – 2013-02-28 08:23:08