問題タブ [invalidation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
3009 参照

iphone - 必要な1つのnstimerを無効にする方法

関数ごとにスケジュールするnstimerの1つを無効にしたい場合-(void)addSomeNSTimer:(NSTimer *)timer

アプリケーションはnewtimerを繰り返し作成するので、これらのnewnstimerのいずれかを無効にする必要がある場合、必要なオブジェクトを見つけるにはどうすればよいですか?

例:アプリケーションは4つのnstimerを作成し、ループで実行します。それらの1つを見つけて、無効にするにはどうすればよいですか。

0 投票する
2 に答える
3158 参照

iphone - NSRunLoopでタイマーを正しく無効にする方法

アプリのサーバーからsecondsToEnd値を使用して情報を取得し、この情報を受信した後にカウンターを開始します。

私のプロジェクトにはスクロールビューが含まれているので、スクロールによるタイマーのロックを回避するには、次の方法でタイマーをNSRunLoopに追加します。

NSTimerプロパティを作成しました。これは、どのようにオリジナルで、タイマーであり、これは私のstartTimer関数のスニペット全体です。

startメソッドでチェックが無効になる理由は、secondsToEnd値が0に達した後、新しい値を受け取り、startTimerを再度呼び出すためです。

そして私のdeallocメソッドではこれがあります:

しかし、それは無効になりませんか?私は何が間違っているのですか?

0 投票する
1 に答える
13811 参照

c# - OnPaint、Invalidate、Clipping、および Region のベスト プラクティス

背景が大きなビットマップである (OnPaint から呼び出される) 自分自身を描画する多くのオブジェクトの完全にカスタム描画されたグラフィックスを持つユーザー コントロールがあります。ズームとパン機能が組み込まれており、キャンバスに描画されるオブジェクトのすべての座標はビットマップ座標です。

したがって、ユーザー コントロールの幅が 1000 ピクセルで、ビットマップの幅が 1500 ピクセルで、200% ズームでズームしている場合、いつでもビットマップの幅の 1/3 しか見えません。また、ビットマップのポイント 100,100 から始まる長方形を持つオブジェクトは、画面の左端までスクロールすると、ポイント 200,200 に表示されます。

基本的に私がする必要があるのは、再描画が必要なものだけを再描画する効率的な方法を作成することです。たとえば、オブジェクトを移動する場合、そのオブジェクトの古いクリップ四角形を領域に追加し、そのオブジェクトの新しいクリップ四角形を同じ領域に結合してから、Invalidate(region) を呼び出してこれら 2 つの領域を再描画できます。

ただし、この方法では、オブジェクトを Invalidate に渡す前に、常にオブジェクトのビットマップ座標を画面座標に変換する必要があります。PaintEventArgs の ClipRectangle は、他のウィンドウが私のものを無効にするときの画面座標にあると常に想定する必要があります。

ビットマップから画面座標に変換する必要がないように、Region.Transform および Region.Translate 機能を利用する方法はありますか? 画面座標での PaintEventArgs の受信を妨げないようにするには? 複数のリージョンを使用する必要がありますか、それともこれをすべて行うためのより良い方法はありますか?

私が今行っていることのサンプルコード:

そして、OnPaint() で...

0 投票する
0 に答える
838 参照

android - 複数のビュータイプが適切に更新されないAndroidListView

リストビュー用に3つの異なるテーマを作成しようとしています。各テーマが実際に適切な背景レイアウトを表示し、データオブジェクトにバインドすることを確認しました。私が直面している問題は、設定でテーマを切り替えてメインのViewActivityに戻った後でも、多くの場合、すべてのビューに古いテーマのレイアウトが残っていることです。上下にスクロールするか、電話の向きを変更するまで。

呼び出しのシーケンスは、onResume()-> updateUI()->リストビューアダプターをクリアし、バインドする新しいデータを追加し、アダプターでdataSetChanged()->カスタムgetView()を呼び出して、テーマを調べ、それに応じて適切なビューを選択します。

以下はいくつかのコードです(私はGoogle IOビデオでタイプのものを見ました)...

getView()からのテーマの1つ

updateUIList()は次のことを行います。

とテーマの種類:

ありがとう。

0 投票する
1 に答える
1316 参照

iphone - Objective-Cのiphoneでnstimerを無効にする

の無効化に問題がありNSTimerます。以下の関数でaを初期化NSTimerします。

updateLeftTimeさらに、セレクターで関数を呼び出しました。

この関数[self increaseDropShots];は上記の関数で呼び出されます。これがこの関数のコードです

この関数では、このタイマーを強制終了していますが、できません。

これは私のアプリケーションのシナリオ全体です

何が問題なのか教えてください。

0 投票する
1 に答える
23601 参照

android - Androidのinvalidate()メソッドとpostInvalidate()メソッドの違いは何ですか?

invalidate()AndroidとpostInvalidate()メソッドの違いは何ですか?それぞれがいつ呼び出されますか?メソッドは、拡張するクラスでのみ呼び出す必要がありますViewか?

0 投票する
1 に答える
273 参照

android - アンドロイドの無効化について?

これで、Framelayout ができました。これには 2 つのビューが含まれています。トップ ビューの invalidate() メソッドを呼び出すと、別のビューの onDraw() も呼び出されることがわかりました。別のビューの onDraw() を呼び出すべきではないと思います。onDraw の呼び出しを停止する方法はありますか?

onDraw() が呼び出される理由を誰かが教えてくれますか?

0 投票する
1 に答える
1412 参照

macos - CFSocket がコールバックを送信しないようにするにはどうすればよいですか?

接続するすべてのクライアントのオブジェクトを作成するサーバー アプリがあります。このオブジェクトのinitメソッドでは、次のコードを使用して を作成CFSocketし、クライアントと通信します。

メイン プログラムがクライアントで完了すると、ClientConnectionオブジェクトが解放され、そのdeallocメソッドが呼び出されます。

それが完了した後も、クラッシュの原因となる割り当てが解除されたオブジェクトにルーティングされるデータ コールバックを受け取ります。

考えられる限りのことはすべて試しましたが、それでもうまくいきません。CFSocketが無効化された後にコールバックを送信する理由について何か考えはありますか?

0 投票する
1 に答える
1285 参照

objective-c - NSTimer が無効にされていません

RKObjectManager のタイムアウトを実装しています。私のコードスニペットは次のとおりです。

上記の実装では、「遭遇エラー」メソッドで常にタイマーを無効にします。これは、タイマーが切れる前にエラーが発生するケースを軽減するためです。この場合、タイマーを無効にして、エラー メッセージが再び表示されないようにします。

ただし、エラーが発生した後 (タイマーが期限切れになる前) にもう一度エラー メッセージが表示されます。「遭遇エラー」メソッドの無効化が機能しなかったようです。私のコードの何が問題なのかアドバイスはありますか?

0 投票する
2 に答える
930 参照

c++ - 削除されたポインターを無効にしますか?

コメントでわかるように、配列内の古いポインターを消去するのを忘れていました。代入演算子を 2 回目に呼び出したとき、ダブル フリーについて不平を言う glibc エラーが発生しました。提供された唯一の情報は、削除された住所でした。

これは、そのような削除されたポインターのクラスをどうするかについて考えさせます-それらを再度削除したくない場合、および削除した場合、それは確かにエラーです。別の削除が正しいため、それらを NULL に設定することはできません。新しく作成されたオブジェクトにメモリの場所を割り当てることができるため、値を保持したくありません。

デバッグに適しているのは、INVALID などの値です。これらのポインターに割り当てる値は、「このポインターで delete を呼び出しても何も起こらない」という NULL の代わりに、「このポインターで delete を呼び出すとエラーです」と表示されます。このようなものはありますか?