0

現在、NSLevelindicator を更新する次のコードがあります。

[self.headerIndicator selfFloatValue:heightValue]

更新時に値間のレベル インジケータをアニメーション化する方法はありますか?

4

4 に答える 4

1

スライダーのアニメーション化に対するこの回答を読んでください。レベルインジケーターで試したことはありませんが、API ドキュメントからは実行可能なオプションのようです。そこにあるソースコードは簡単に適応できます: NSSlider アニメーション

于 2012-09-14T23:22:39.893 に答える
0

レベルを変更するために、このような独自のメソッドを作成できます。そこにある計算では、古い値から新しい値への遷移の大きさ (これらの値で約 1 秒) に関係なく、「アニメーション」の合計時間を等しく保とうとします。

-(void)updateLevel:(NSNumber *) newLevelNum {
    float currentLevel = self.level.floatValue;
    float newLevel =  newLevelNum.floatValue;
    if (self.delay == 0.0) // self.delay is a float property set to 0.0 elsewhere
        self.delay = .2 /(newLevel - currentLevel);
    [self.level setFloatValue:currentLevel + .2];
    if (self.level.floatValue - newLevel < .01){
        [self performSelector:@selector(updateLevel:) withObject:newLevelNum afterDelay:self.delay];
    }
}
于 2012-09-14T16:56:29.267 に答える
0

[[[self.headerIndicator] animator] setFloatValue:heightValue];機能しない場合は、自分で機能を追加する必要があります。NSAnimatablePropertyContainerを参照してください。

于 2012-09-14T13:36:29.437 に答える