問題タブ [setneedsdisplay]

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 投票する
0 に答える
316 参照

android - Androidでディスプレイをオンまたはオフにする方法は?

近接センサーを使用して入力を無効にしたい(または表示をオフにしたい)。

近接センサーの変更により、画面入力を無効および有効 (オフおよびオン) にする必要があります。

ここで多くの質問を検索しましたが、適切な答えが見つかりませんでした。コードでは、表示がオフになることを試しました。しかし、近接が変化すると、ディスプレイはオンになりませんでした。

これは onSensorChanged メソッドです。

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

cocoa - NSTextView setNeedsDisplay は Mavericks で動作しませんか?

私の MacOS Cocoa アプリケーションは、静的テキストのウィンドウを表示します。つまり、ユーザーが変更してはならず、ファーストレスポンダなどであってはなりません。テキストに発生する唯一のことは、特定の時点でその各単語の色が (「idleColor」から「highlightColor」に、そして再び元に戻る) 変わることです。これはカラオケのディスプレイに似ています。時間指定されたイベントのリストに基づいて、プログラムの制御下で個々の単語の色が変わり、元に戻ります。

これらはすべて、MacOS 10.7 および 10.8 で美しく機能します。ただし、10.9 では、ウィンドウをクリックしてカーソルを継続的に移動しない限り、テキストの色は変更されません。これを行うと、通常の単語は意図したとおりに動作します。基本的に、UI の応答を必要とする何かを手動で実行して強制的に更新しない限り、OS がプログラム制御下でウィンドウを更新することを拒否しているように感じます。

色の変更を実行するコードは次のとおりです。

(sTextView は NSTextView のサブクラスです。)

ここで、最後の行をコメントアウトすると、10.7 と 10.8 で同じ、正しくない動作が発生します。つまり、10.9 では、setNeedsDisplay メソッドが機能していないか、同じように機能していません。

これを回避するためのアイデアはありますか、または問題を解決するための他の光がありますか? それとも、私は何かひどく間違ったことをしていますか? アプリケーションにとって、textColor への変更がレイテンシーなしで行われることは非常に重要です。

質問の編集 - 回答するには:

ここで他の場所で答えを見つけました!メインスレッドでsetNeedsDisplayを呼び出す必要がありました-それはセカンダリスレッドにありました。奇妙なことに、10.7 および 10.8 では常に正常に動作しているように見えました。10.9未満でしか壊れませんでした。だから私はこれを変更しました:

これに:

…そしてそれはうまくいったようです。これが他の誰かに役立つことを願っています…</p>

0 投票する
3 に答える
4305 参照

ios - iOS: [self.view setNeedsDisplay];

これについての基本を忘れているようです。それとも、疲れすぎているのかもしれません。

ビューコントローラーと、そのサブクラスでUIViewある MyViewClass という名前のビューがあります。

viewDidLoad私のviewControllerでは、私は次allocinit self.myViewようにしています:

私のviewControllerのある時点で、私は[self.view setNeedsDisplay];. ここでは問題ありません。

MyViewClass.h でプロパティを公開します。

プロパティはmyViewiで使用されます。drawRectしたがって、私のviewControllerから次のように設定します。

だから私の質問は:

[self.view setNeedsDisplay];呼び出す必要なくビュー コントローラーを呼び出すことができ、myView で呼び出されるのに、既にビュー コントローラーに割り当てられているようにビュー コントローラーで呼び出すことができない[self.myView setNeedsDisplay];のはなぜですか?drawRectself.view.iself.myViewself.viewviewDidLoad

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

objective-c - 2 つの UIView を線で接続する方法は?

という UIView サブクラスがありMENodeます。それぞれに、そのサブノード (およびs)MENodeを追跡する NSMutableDictionary があります。MENode私が達成しようとしているのは、親ノードから子ノードに線を引くことです。drawRect:これはinの私の実装ですMENode:

以下のメソッドは両方とも、View Controller によって呼び出されます。私は両方で呼び出します[self setNeedsDisplay];

これを実行すると、行は表示されず、ノードのみが表示されます。よろしくお願いします。

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

cocoa - isOpaque が親 drawRect への受け渡しを停止しない

Cocoa とそのビューの再描画階層に問題がありました。

現在、メーター スタイル コントロールで (オーディオ) レベルの表示をテストしており、Apple の MatrixMixerTest サンプル プロジェクトの MeteringView クラスを使用しています。このクラスはメーターを描画し、変更された部分のみを描画する非常に効率的なクラスのようです。

私のプロジェクトは 2 つの分割ビューに分割されています。一部は NSCollectionViews (Scrollview、Clipview) で、他は静的ビューのみです。これらの「静的」ビューにメーターを追加すると、これらのビューが setNeedsDisplay:YES を呼び出したときに正常に動作します。メーターが CollectionView アイテムのビューに追加されるとレンダリングされますが、描画された「古いレベル」の部分とそのコーナー/背景が失われます。CollectionView アイテムも再描画されるように呼び出され(背景画像があります)、すべてがなくなったため、これが発生すると思います。現在変更中の部分を描画しています(描画は機能します)。

アイテム自体が再描画されるのを防ぐ方法はありますか? または、それらのビューにも背景画像がありますが、メーターを超えて描画されないため、これらの静的ビューで発生しない理由がわかりません。

CollectionView には、「通常の」ビューよりもいくつかのトリックや違いがありますか?

編集: isOpaque (MeteringView isOpaque = YES) について読んだ後、yes に設定されている場合、親ビュー drawRect を呼び出すべきではないことを意味します。これは静的ビューでは機能します。これらの MeteringView は親の drawRect を呼び出しませんが、CollectionView の親は呼び出します。どうしてか分かりません。

編集 2:このトピックに別のタイトルを付けました。これは、MeteringView の isOpaque=YES が CollectionView の親 drawRect の呼び出しを停止していないためです。通常のビューでは機能しています。知っておくべきことがいくつかありますか?それが問題なので、CollectionView アイテムの再描画を停止する必要があります。

よろしくお願いします

ベンジャミン

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

ios - contentInset または automaticallyAdjustsScrollViewInsets を設定して実際に適用するにはどうすればよいですか?

UIViewController含む がありUIScrollViewます。最初automaticallyAdjustsScrollViewInsetsは設定されていません(したがって、デフォルトで に設定する必要がありますYES)。

一部のユーザー インタラクションでは、 に設定automaticallyAdjustsScrollViewInsetsしたため、スクロール ビューでNO独自の設定を行うことができます。contentInset

その後、何も起こりません。後で何に電話すればいいですか?

スクロール ビューを呼び出しsetNeedsDisplayても役に立ちません。

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

ios - あるクラスからメッセージを送信して、別のクラスの「自己」をトリガーできますか?

私は、私が従ってきた本のコースからプログラムを適応させており、ビューコントローラー、ビュー、および他の2つによって共有される変数を格納するシングルトンの3つのクラスがあります。

ビューコントローラー内にいくつかのコードを記述しようとしています。これにより、ビューがトリガーされ、[self setNeedsDisplay] メッセージが送信されます。ただし、これをインスタンス メソッドとして設定すると、コンパイラは「クラス メソッドなし」例外をスローします。メソッドをクラス メソッドに変更すると、'self' プロパティが機能しなくなります。

正直なところ、私はまだ OOP の一般的な違いの多くについて頭を悩ませているので、状況を完全に把握していない可能性があります。しかし、あるクラスから別のクラスにメッセージを送信して、2番目のクラスが「自己」アクションを開始するようにすることは可能ですか?

メッセージを送信するView Controllerのコードは次のとおりです(現在のコーディング試行で):

メッセージを受け取るビュー クラスのコードは次のとおりです。

それがどれほど関連性があるかはわかりませんが、ここに私のシングルトンクラスがあります:

誰かがこれについて考えや意見を持っているなら、私はそれらを聞きたいです!

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

ios - setNeedsDisplay がバックグラウンド スレッドで機能しない

新しいスレッドでメソッドを呼び出してsetNeedsDisplayいますが、ビューに変更が見られません。setNeedsDisplay新しいスレッドを呼び出した後、すべての変更を確認するにはどうすればよいですか?