2017-05-20 8 views
0

サーバーのデータに基づいて進行状況バーを更新しようとしています。したがって、受け取った値(%)が90より小さい場合、プログレスバーは緑色でなければならず、赤色でなければなりません。呼び出しprogressTintColorがUIProgressviewの進行を0.01と0.05の間で更新しない

if (value >= 90) { 
    progressBar.progressTintColor = UIColor.redColor() 
} else 
{ 
    progressBar.progressTintColor = UIColor.greenColor() 
} 
progressBar.setProgress(Float(value)/100, animated : true) 

上記のコードは0.01 - 0.05の範囲を除いて正常に動作します。この範囲の間の値は常に進捗を0.05のみとして表示します。 色を更新するコードをコメントアウトすると、正常に動作しているようです。

メインスレッドのすべてを更新しています。また、私はviewDidLoadとviewWillAppearからこのメソッドを呼び出すことは進捗に影響しないことに気付きました。それはまだ答えていない、 UIProgressView doesn't update <=0.5 value after Changing ProgressTintColor

をしかし -

同様の質問は、下記のリンクに掲載されています。

この問題を解決するお手伝いがあります。 - 1.0 `0.0の値をとります。

+0

'でsetProgressを試してみてください。上記のコードから、 'value'は1.0よりも大きいようです。 'value'値を0.1〜1.0の範囲の同等の数値に変換してみてください。 – Rishab

+0

@Rishab、タイプミスで申し訳ありません、上記のサンプルコードを修正しました。私はすでに元のコードで100.0fで割っています。まだ問題はあります。ありがとう! – Leena

+0

進行状況が0.01か1.0の間であれば、どのような色が予想されますか? – Bilal

答えて

0

この

DispatchQueue.main.async { 
    if (value >= 90) { 
     progressBar.progressTintColor = UIColor.redColor() 
    } else 
    { 
     progressBar.progressTintColor = UIColor.greenColor() 
    } 
    progressBar.setProgress(value, animated : true) 
    } 
+0

私は私の質問でメインスレッドで上記のコードを実行していると言いましたが、依然として役に立ちません。 – Leena

関連する問題