iPadアプリ。OS 4.2。
ボタンを押すと、UIImageView を作成してアニメーション化するこの関数を呼び出す (そして 2 番目のアニメーション ブロックを呼び出す) ボタンがあります。同じ関数を呼び出し、別の場所と別の URL をグラフィックに渡す別のボタンを作成しました。
最初のボタンから生成された最初のグラフィックには、2 番目のボタンから渡された位置があります。これはおそらく、UIImageView に動的に名前を付けて衝突を取得していないことが原因です。
では、無限の数の UIImageView を動的に作成して名前を付けるにはどうすればよいでしょうか? 特に、2 つの関数で UIImageView を参照するには、関数の外で宣言する必要があります。
-(void)makeSoundEffectWordAppear:(NSString *)imageName:(int)startingX:(int)startingY:(int)endingX:(int)endingY{
myImage = [UIImage imageNamed:imageName];
[testWord setImage:myImage];
testWord = [[[UIImageView alloc] initWithFrame:CGRectMake(startingX,startingY,myImage.size.width,myImage.size.height)] autorelease];
[self.view addSubview:testWord];
testWord.alpha=0;
testWord.transform = CGAffineTransformMakeScale(.5, .5);
[UIView beginAnimations:@"moveWord" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(fadeWord:finished:context:)];
//[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationBeginsFromCurrentState:YES];
testWord.transform = CGAffineTransformMakeScale(1, 1);
testWord.center = CGPointMake(endingX,endingY);
testWord.alpha=1;
[UIView commitAnimations];
}
- (void)fadeWord:(NSString *)animationID finished:(BOOL)finished context:(void *)context{
[UIView beginAnimations:@"makeWordFade" context:nil];
[UIView setAnimationDelegate:self];
[UIView setAnimationDelay:5];
testWord.alpha=0;
testWord.transform = CGAffineTransformMakeScale(.5, .5);
[UIView setAnimationDuration:1];
[UIView commitAnimations];
}