imagaviews
でビューに追加した 8がありsize (0,0)
ます。今私がやりたいことは、各imageViewをUIViewanimation
. 私は2つのアニメーションをやりたいです。最初にサイズは from に移動し(0,0) --> (105,85)
、その後 imageview のサイズは from に移動する必要があります (105,85) --> (93,75)
これで、最初にすべての imageViews を正しい場所に配置するメソッドができました。すべての画像にsize (0,0)
は最後にメソッドを呼び出しますstartAnimating
-(void)startAnimating{
[self animageButton:[arrButtons objectAtIndex:0]];
}
次に、最初のビュー アニメーション ( from (0,0) --> (105,85) )
-(void)animageButton:(UIImageView *)imgButton{
loopIndex++;
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
CGRect btnFrame = imgButton.frame;
btnFrame.size.width = 105;
btnFrame.size.height = 85;
[UIView transitionWithView:self.view
duration:0.5f
options:UIViewAnimationOptionCurveEaseIn
animations:^{
imgButton.frame = btnFrame;
}
completion:nil];
[UIView commitAnimations];
[self animageButton2:imgButton];
}
これは 2 番目のメソッドを呼び出します ((105,85) --> (93,75) から)
-(void)animageButton2:(UIImageView *)imgButton{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:2.0];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector: @selector(animationDidStop:finished:context:)];
CGRect btnFrame2 = imgButton.frame;
btnFrame2.size.width = 93;
btnFrame2.size.height = 75;
[UIView transitionWithView:self.view
duration:0.5f
options:UIViewAnimationOptionCurveEaseIn
animations:^{
imgButton.frame = btnFrame2;
}
completion:nil];
[UIView commitAnimations];
}
この時点で、最初の imageView をアニメーション化する必要があります。今、アニメーションが終了したとき。私はこれに。
-(void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context {
//do smth
if(loopIndex <= 7){
NSLog(@"called");
UIImageView *imgObj = [arrButtons objectAtIndex:loopIndex];
[self animageButton:imgObj];
}else{
NSLog(@"done");
return;
}
}
現時点で行っていることは、すべての画像を同時にアニメーション化することです。しかし、前の画像ビューが終了したときに次の画像ビューがアニメーションを開始することを望みます。
誰でもこれで私を助けることができますか?