私のアプリには、UIImageViewが大きくなり、実際には2つのアニメーションが縮小されるアニメーションがあります。アプリ全体を通して、これはいくつかの異なるUIImageViewで発生する可能性があります。私は本当にうまくいったこれを行う方法を見つけましたが、現在はAutomatic Reference Countingと互換性がないようです。ここに私のコードは次のとおりです。ARVIEW内の複数のUIImageViewsのUIViewアニメーション
[UIView beginAnimations:@"growImage" context:imageName];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
imageName.transform = CGAffineTransformMakeScale(1.2, 1.2);
[UIView commitAnimations];
、その後:
- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(UIImageView *)context {
if (animationID == @"growImage") {
[UIView beginAnimations:@"shrinkImage" context:context];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDelegate:self];
context.transform = CGAffineTransformMakeScale(0.01, 0.01);
[UIView commitAnimations];
}
}
これは完全に働いたと私はARCに私のプロジェクトを変換しようとするまで、私は、とても満足でした。
[UIView beginAnimations:@"growImage" context:imageName];
[UIView beginAnimations:@"shrinkImage" context:context];
ん:私は今、私はアニメーションのためのコンテキストとしてUIImageViewを渡すためにしようとするこれらの行に「『無効*』へのObjective-Cのポインタの暗黙的な変換ARCで許可されていない」エラーが出ます誰かが、アニメーションビューの「animationDidStop」関数を警告することができる別の方法を知っている人は、ARCに準拠したUIImageViewを動作させたいのですか?
ありがとうございます!
ありがとう多く! – RanLearns
警告:まっすぐな '__bridge'は、' imageName'への強い参照がすでにアニメーションの完成を引き継いでいる場合にのみ有効です。さもなければ、ARCはハンドラが呼び出される前にそれを取り除きます。それがあなたに当てはまる場合は、より良い答えをご覧ください:http://stackoverflow.com/questions/12809107/passing-objects-safely-as-opaque-context-params-under-arc –