我想爲圖層的底部翻起來的圖層創建一個動畫。想象一下頂端的視角,然後這個底視圖就會呈現出來。就像一個小巧的封面。我想要的是像標準翻轉動畫,但只看到它的一面。我在構建動畫時遇到了麻煩。UILayer自定義的'緊湊'動畫,尋找錨的幫助
問題是我得到的動畫正確接受我似乎無法創造'鉸鏈'的一部分。也就是說,鉸鏈位於中心而不是頂部。我錯過了什麼?
下面的代碼:
[UIView animateWithDuration:2.0 delay:0.0 options:UIViewAnimationOptionCurveEaseIn animations:^{
CATransform3D frontTransform = CATransform3DIdentity;
frontTransform.m34 = 1.0/-850.0;
CATransform3D rotation = CATransform3DRotate(frontTransform, M_PI/2, 1.0, 0.0, 0.0);
frontTransform = CATransform3DTranslate(frontTransform, 0.0, 0.0, menuView.bounds.size.height);
frontTransform = CATransform3DConcat(rotation, frontTransform);
menuView.layer.transform = frontTransform;
}completion:^(BOOL finished){
if (finished) {
[self.window sendSubviewToBack:menuView];
CATransform3D backTransform = CATransform3DIdentity;
backTransform.m34 = 0.0f; //Must be first before setting any other properties.
backTransform = CATransform3DRotate(backTransform, M_PI, 0.0, 0.0, 0.0);
backTransform = CATransform3DTranslate(backTransform, 0.0, 0.0, 0.0);
menuView.layer.transform = backTransform;
}
}];
我想上述動畫的圖層,然後把圖層的觀點落後於完成所有其它視圖,並返回層到它的原始狀態,這樣我就可以稍後將它帶到前面。
感謝您的幫助!
不幸的是,這並沒有奏效。它使圖層消失。 – 2011-05-18 14:45:06
試試這個'menuView.layer.anchorPoint = CGPointMake(0.5,0.0);' – 2011-05-18 15:12:03
呵呵,對,明白,CALayer座標系統從0.0變爲1.0,iOS上的原點位於左上角(在OSX上)會在左下方)。 – 2011-05-18 15:36:47