3 つの異なる速度で 3 つのラベルのアニメーションを実行したいと考えています。label1 with a duration of
1.0 秒。label2 with a duration of
2.5 秒。label3 with a duration of
5.0 秒。
「setAnimationDuration」メソッドを試しましたが、うまくいきませんでした。私がどこで間違っているのか、誰にもわかりますか?
編集: 完全なシナリオ: スクロールビューがあります。右から左にスワイプすると、スクロールビューの各ページの背景画像が異なるため、背景画像が変化します。スクロールすると、ラベルもアニメーションを開始し、次のページから開始しているように見え、スクロールが完了すると、特定の位置で停止します。現在のオフセットに基づいてアニメーションを実行しています。
コード:
- (void) scrollviewDidScroll:(UIScrollView *)scrollView{
if(currentOffset > 1024)
{
[UIView beginAnimation: nil context:nil];
[UIView setAnimationDuration: 1.0];
label1.frame = CGRectMake(2048-currentoffset+ 100, Y, Width, Height);
[UIView commitAnimation];
}
if(currentOffset > 1024)
{
[UIView beginAnimation: nil context:nil];
[UIView setAnimationDuration: 2.5];
label2.frame = CGRectMake(2048-currentoffset+ 100, Y+20, Width, Height);
[UIView commitAnimation];
}
if(currentOffset > 1024)
{
[UIView beginAnimation: nil context:nil];
[UIView setAnimationDuration: 5.0];
label3.frame = CGRectMake(2048-currentoffset+ 100, Y+20, Width, Height);
[UIView commitAnimation];
}
}
問題は setAnimationDuration が機能していないことです。