2

画像にアニメーションを使用し、ボタンをクリックして開始し、5秒後に停止したい。このコードを使用します。

-(IBAction) btnClicked
{   
    CABasicAnimation *fullRotation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
    fullRotation.fromValue = [NSNumber numberWithFloat:0];
    fullRotation.toValue = [NSNumber numberWithFloat:((360*M_PI)/180)];
    fullRotation.duration = 6;
    fullRotation.repeatCount = 1e100f;
    fullRotation.delegate = self;
    [imgView.layer addAnimation:fullRotation forKey:@"360"];
    [imgView.layer setSpeed:3.0];
}

このコードでアニメーションが開始されますが、5秒後にこのアニメーションを停止する方法がわかりません。

4

1 に答える 1

1

にも対処しないでくださいCoreAnimationUIViewこれは、プログラムしやすいアニメーションで実現できると思います。ドキュメントを見てUIView、ブロック アニメーションを試してください (iOS 4.0 を想定しています。そうでない場合は、古いスタイルを使用してください)。

アニメーションに関するドキュメントについては、こちらを参照してください。を使用して回転を行うようにプロパティをUIView設定します。transformCGAffineTransformMakeRotation

UIViewベースのアニメーション回転は次のとおりです。

- (void)viewDidLoad
{
    [super viewDidLoad];
    UIView *viewToAnimate = [[[UIView alloc] initWithFrame:CGRectMake(50, 50, 100, 100)] autorelease];
    viewToAnimate.backgroundColor = [UIColor blueColor];
    [self.view addSubview:viewToAnimate];
    [UIView animateWithDuration:5 animations:^{
        viewToAnimate.transform=CGAffineTransformMakeRotation(M_PI);
    }];
}
于 2011-04-30T05:08:37.513 に答える