私はiPhone開発者にとって新しく、Apress.Beginning.Iphone4.Devを読む過程で、これがiPhoneアプリケーションを開発する上で最善の方法であるかどうかはわかりません。 私は現在、第4章でサンプルコードの実装を完了しましたが、少しmodを追加したいと思います。押された場合はUIViewの背景色を連続的に変更します
- ボタンと呼ばれるディスコ
、タッチアップの内側には、forループで
self.view.backgroundColor
値ランダムに100回 を変更することが開始されます。私の問題は、IBAction後の変更のみが完成し、ボタン ディスコ、に接続された背景であるので、私は唯一の代わりに、少なくとも2色の変化の1色の変化を見ることができました。
私の疑惑は、IBActionが完了するまでビューがリフレッシュ/リロードされないということです。この疑いは正しいですか?
私が実装したい機能を実現することが可能です。 - ボタンに触れる - 背景色がランダムに100回変化します。
ありがとうございました。先生、ありがとうございました。 timex88
はあなたのすべてをありがとう========================は、私はあなたのポインタには、この作業のおかげです。代わりに100回、 私はchangeBgColor
メソッドを無期限に実行させます。
何私は気づいた、changeBgColor
がまだ実行されている間、私は再びディスコ ボタンをタッチした場合、changeBgColor
方法の割合が高くなった実行されている、誰かが理由を説明してくださいできますか?再び TIMEX 88
申し訳ありませんと
viewDidLoad
に初期化し、私は上記のコードでは、確認したい、どのように、どこ_timerが宣言されていますか? 、 再度、感謝します。 – timex88_timerはインスタンス変数なので、@interfaceセクションで宣言する必要があります。 – Davyd
@interfaceセクションで宣言する必要があります:NSTimer * _timer ;.このタイマーでは、0.2秒ごとにcolorTimerFiredメソッドが呼び出されるため、この例ではビューの色は1秒に5回変化します。 100回後、[_timer invalidate]を呼び出してタイマーを停止させます。これにより、ランループからタイマーが削除されます。また、ポインタを無効にするので、次回にボタンを押すと別のタイマーを実行できます。 – Davyd