あなたがこの方法を実行する必要があり
...
#pragma mark (Woblling animation)
CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-10.0));
CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(10.0));
self.view .transform = leftWobble; // starting point
[UIView beginAnimations:@"wobble" context:self.view ];
[UIView setAnimationRepeatAutoreverses:YES]; // important
[UIView setAnimationRepeatCount:11];
[UIView setAnimationDuration:1.00];
//[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(wobbleEnded:finished:context:)];//should be same as written
self.view .transform = rightWobble; // end here & auto-reverse
[UIView commitAnimations];
、その後は、彼らが回転後の同じ位置にあなたのビューを維持するために必要な...これらのメソッドを実装します。
- (void) wobbleEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context
{
if ([finished boolValue]) {
UIView* item = (UIView *)context;
item.transform = CGAffineTransformIdentity;
}
}
このメソッドを使用しますが、ナビゲーションを使用していて1つのビューから別のものに移動すると、その後、あなたのビューは、このメソッドを残す同じplace.elseになり場合:
- (void)viewWillAppear:(BOOL)animated
{
UIView* item = self.view;
item.transform = CGAffineTransformIdentity;
}
希望これはです助けます。私は同じ問題を抱えていましたが、いくつかの実験を行い、この解決策に来ました。それがあなたを助けたら、私を投票することを忘れないでください。
「newFrame」はどこに定義されていますか? –
「beginAnimations」行の直前で定義されています。CGRect newFrame = CGRectMake(30,30,200,200); – kiteloop