2011-04-16 7 views
0

UIButtonのイメージを変更する際にアイデアを探していますが、これはメソッドが進行した後に進捗バーと同様に表示されますが、ポーズして画像を表示し、続行し、ボタン画像を変更し、新しい画像を見るために一時停止して、最後の画像に進む。私はObjective Cの少し新しいので、どんなヒントも大いに評価されるでしょう。メソッドの進行中にObjective Cのボタンイメージを変更する

答えて

0

、あなたはメインスレッドのオフに実行するニーズに合わせて進捗状況を表示する方法(またはUIが更新されません)。設定したら、バックグラウンドメソッドを設定して、メインスレッド上のメソッドを呼び出して現在のステータスを報告するだけです。メインスレッドメソッドはステータス情報を取得し、必要なUI更新を適用します。

だから、重要なポイントは以下のとおりです。

  • どれ長寿命の方法は、UIを更新し続けることができるように、バックグラウンドで実行する必要があります。
  • 進行状況を追跡するには、定期的にメインスレッドをバックグラウンドスレッドから呼び出します。
  • メインスレッドのみからすべてのUIアップデートを実行します。
+0

方法はそれほど長くはありません。実際、それは短いので、私は問題を抱えているのです。私の方法は本当に速いです...私はちょうどそれを長く見せたいと思っています...あなたは知っています...このプロセスが本当にどれくらい難しいかについて上司をだます。 – BFBC

+0

@BFBC - 上記のようにすべてを行い、 '[NSThread sleepForTimeInterval:]'をバックグラウンドメソッドに追加してください。基本的にあなたのパターンは '[UI更新メソッドの呼び出し] - > [スリープ] - > [UI更新メソッドの呼び出し] - > [スリープ] - > ...'になります。あなたの目的が何であれ、十分な時間が経過するまで繰り返してください。 – aroth

+0

私はコンセプトを完全に取得しており、コードを実装していますが、uiの更新メソッドはどこにあるのですか?私はその仕事をしているようには思えません。例:[送信者setImage:[UIImage imageNamed:@ "image1.png"] forState:UIControlStateNormal]; \t [NSThread sleepForTimeInterval:1]; \t [送信者セットイメージ:[UIImage imageNamed:@ "image2.png"] forState:UIControlStateNormal]; \t [NSThread sleepForTimeInterval:1]; – BFBC

0

buttonTypeCustom(RoundRectではありません)を使用できます。 BackgroundImageに設定します。あなたが話している方法では、ちょうどBackgroundImageを変更し、それは動作します。

おかげで、ハイレベルで

+0

ありがとうございます。ボタンとその属性は設定されています...それは私が探している変更と遅延です。 – BFBC

+0

あなたはしばらくの間、スレッドスリープを試みることができます。それを試してみてください。 – Ravin

0
[btn_h setImage:[UIImage imageNamed:@"img.png"] forState:UIControlStateNormal]; 

    [btn_h setImage:[UIImage imageNamed:@"img1.png"] forState:UIControlStateHighlighted]; 
    [btn_h setImage:[UIImage imageNamed:@"img2.png"] forState:UIControlStateSelected]; 

よろしく、 シャムparmar

+0

申し訳ありませんが十分に明確ではありませんでした。私はイメージを変更する方法を知っている、私はちょうどメソッドが完了するまで、それが変更を表示することはできません。私はそれが変更を表示する、一時停止する、続行する、新しい画像を表示する、一時停止、続行します。 – BFBC

0

あなたはUIを更新するには、メインスレッドでdispatch_sync、その後、別のスレッドで処理を実行するために、グランドセントラル派遣を使用することができます。これは非常に簡単で、GCDは非常に高速です。

+0

ありがとう、それについて多くは分かっていませんが、今読んで始めています。 – BFBC

0

選択した状態のイメージを変更するには、状態UIControlStateSelectedに対してsetImageを呼び出す必要があります。さまざまな状態(通常、強調表示、無効、選択など)ごとに別々の画像を設定できます。

関連する問題