この質問は多くの人に聞かれますが、私はそれに対する答えを本当に見つけていません。
アニメーションを使用する他の多くのメソッド内にいくつかのクラスがあります
someClass.m
@implementation
////..
-(void) someAnimationWithSomeObject (someParameters...blablabla
[UIView animateWithDuration:0.2f
delay:delay
options:UIViewAnimationOptionCurveEaseOut
animations:^
{
self.center = point;
self.transform = CGAffineTransformMakeRotation(_angle);
}
completion:nil)];
ViewControllerで
-(void) someMethod1 {
/.....
for (int i=0; i < count; i++) {
/...some operation with coordinates
[self.cardContainer addSubview:someView];
[someView someAnimationWithSomeObject:someParameters withDelay:delay];
delay += 0.2f;
/... }
[自己 someMethod2];
}
-(void) someMethod2 {
/.....
for (int i=0; i < count; i++) {
/...some operation with coordinates
[self.cardContainer addSubview:someView];
[someView someAnimationWithSomeObject:someParameters withDelay:delay];
delay += 0.2f;
/... }
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self someMethod1];
}
このコードを使用するとsomeMethod2
、座標の計算がアニメーションよりも速いため、アニメーションは非常に予測できません。
アニメーションを最初の方法で再生し、次に 2 番目の方法で再生する方法など。
【解決済み】
someMethod1 追加後
[self performSelector:@selector(someMethod2) withObject:nil afterDelay:delay];
+または-の遅延による修正が必要です
よくやった!