UISliderの値を変更するためにanimateWithDurationを使用しています。
[UIView animateWithDuration:1.0f
delay:0.0f
options:UIViewAnimationOptionCurveEaseInOut
animations:^{ [myUISlider setValue:10]; }
completion:^(BOOL finished){ }];
問題は、UISliderが変更されている間、その現在の値を表示できる必要があるということです。これは、animateWithDurationを使用しても可能ですか?UISliderサブクラスを作成し、setValueをオーバーライドして、スライダーの値が変更されたときにアクセスできるようにしました。
-(void)setValue:(float)newValue
{
[super setValue:newValue];
NSLog(@"The new value is: %f",newValue);
}
ただし、そのコードはアニメーションブロックの最後でのみ呼び出されます。私は実際には一度だけsetValueを呼び出したので、完全に理にかなっている方法で。しかし、アニメーションブロックが内部メカニズム内で何度も何度もそれを呼び出すことを望んでいましたが、そうではないようです。
UIView animateWithDurationがここで行き止まりになっている場合、他の何かでこの同じ機能を実現するためのより良い方法があるのだろうか?おそらく、SDKのもう1つの洗練された小さなブロック駆動部分で、UIViewパラメーター以外のアニメーションを可能にするものについてはわかりません。