以下のようなコードを組んでいるのですが、setAnimationDidStopSelectorで指定したendDropPartメソッドの中で、どうやってアニメーションさせるオブジェクトを指定するか悩んでいます。iPhone SDKは初心者です。どなたかご教授いただけないでしょうか?
-(void)endDropPart{
/*
[下のメソッドのrrecieverが指すボタン setAlpha:1.0f];
*/
NSLog(@"endAnim");
}
- (void)DropPart:(UIButton *)reciever {
[player play];
CGFloat y = [reciever center].y;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(endDropPart)];
[reciever setCenter:CGPointMake([reciever center].x, y+150)];
[reciever setAlpha:0.0f];
[UIView commitAnimations];
}
ひとつは、最初のアニメーションだけ実行するか、全部のアニメーションを実行するかでちょっと変わりますね。
最初のアニメーションだけ実行するなら
BOOL flag=NO;
if(flag){
animetion
flag=YES;
}
}
flag=NO;
nextAnimation
}
全部実行するなら
UIButton* buttonInstance[MAX];
NSInteger wptr=0;
NSInteger rptr=0;
animetion
buttonInstance[ptr]=receiver;
wptr++;
if (wptr==MAX)
wptr=0;
if (buttonInstance[wptr])
error;
}
[buttonInstance[rPtr] hogehoge];
rptr++;
if (rptr==MAX)
rptr=0;
}
DropPortとendDropPortの順番が入り混じるようだとカオスですね。
たぶん「dopartが別の引数で呼び出される」これを禁止するのが一番いいと思いますけど。