我有一個問題,希望有一個簡單的解決方案。我正在嘗試使用按鈕,計時器,框架,cgaffinetransformrotations和延遲創建一個浮動效果。一切都會很好,除了當按鈕旋轉時,我將按鈕的框架設置爲減少或增加10倍左右的像素,旋轉使得按鈕的框架比通常更大。最終的結果是一個不斷增長的按鈕,直到它吞下屏幕。只設置框架的CGPoint
我試着做了向上和向下運動的cgaffinetranslations,但是它使用了變換屬性(這與旋轉使用的屬性相同)。結果是一個非常跳躍和不現實的鮑勃。
我想要完成的只是設置幀的原點組件,而不必指定寬度和高度,因爲即使指定硬編碼的寬度和高度,仍然會在旋轉時增大縮小,並在增大時增大它又接近平衡。
任何想法?
謝謝!
CODE:
- (void)movePlay{
[self performSelector:@selector(moveDown:) withObject:play];
[self performSelector:@selector(rotateRight:) withObject:play afterDelay:0];
[self performSelector:@selector(moveUp:) withObject:play afterDelay:0.5];
[self performSelector:@selector(rotateLeft:) withObject:play afterDelay:1];
}
- (void)moveUp:(UIButton*)log{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:.5];
log.transform = CGAffineTransformMakeTranslation(0, -20);
[UIView commitAnimations];
}
- (void)rotateRight:(UIButton*)log{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
log.transform = CGAffineTransformMakeRotation(0.0174532925*10);
[UIView commitAnimations];
}
距離iOS的參考圖書館暗示第一結合他們:「警告如果變換屬性不是恆等變換,這個屬性的值(幀)沒有定義,因此應該忽略。「意思是,你應該設置邊界,而不是框架。 – lukasz 2012-04-10 00:57:38