問題タブ [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 投票する
5 に答える
4984 参照

iphone - UIViewのsetNeedsDisplayに関する混乱

UITableView*myTableViewのivarがあります。インターネットからデータを読み込んでいるので、データが読み込まれたときに[myTableView setNeedsDisplay]を呼び出す必要がありますが、[myTableView reloadData]を呼び出すことができるか、呼び出す必要があることはわかっていますが、setNeedsDisplayの呼び出しも機能するはずですが、機能していません。

setNeedsDisplayが何をするのかについての説明を探していますか?UITableViewインスタンスで呼び出されたとき。

ドキュメントによると、setNeedsDisplayは「次の描画サイクル」でdrawRectを呼び出します。だから、誰もが次の描画サイクルは何であるかを教えてもらえますか?

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

objective-c - setNeedsDisplay は *常に* 再描画されますか?

cocoa を使用してカスタム ビュー アプリケーションを作成しました。そして後で(はい、それが悪いことはわかっています)、私は自問自答しました:これはココアタッチでもうまくいくでしょうか?もちろん、id はすぐには機能しませんでした。クラス名などを変更する必要がありました。さて、私はビューが必要なときはいつでもNSTimersetNeedsDisplay:メソッドを使用してビューを更新しました。ココアの下ではかなりうまくいきましたが、ココアタッチの下ではまったくうまくいきませんでした.

私はそれを自分自身に説明することはできません.実際には、どのコード行が誰かが問題を解決するのに役立つかわかりません. 多分ここにタイマーがあります:

そして、それはターゲットです:

タイマーは 30 ミリ秒ごとに呼び出されます。NSLog で確認しました。

このdrawRect:方法では、実際にいくつかの図形を描画するだけで、他には何もしませんでした。何らかのclearRect:メソッドを呼び出す必要がある場合に備えて。私が言ったように、ココアの下ではうまくいきました。

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

objective-c - UIImage の setNeedsDisplay が機能しない

ボタンがタッチされたときに dataBuffer を使用して UIImage に線を描画しようとしていますが、drawRect: .. メソッドが呼び出されません。(なので、描きたい線が出てこない)

どこに問題があるのか​​ 本当にわからないので、かなり多くのコードを投稿しました。申し訳ありません。

ところで、私はビューベースのアプリケーションに取り組んでいます。

ここに私のコードがあります:

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

objective-c - UIView サブビューの setNeedsLayout

私はUIViewControllerとを持っていますwillRotateToInterfaceOrientation, 私は呼んでいます[self view] setNeedsLayout];

このビュー呼び出しはサブビューの (a UIScrollView)layoutSubviewsメソッドですが、サブビューUIScrollViewは呼び出しませんlayoutSubviews。これが本来あるべき姿ですか?setNeedsLayoutビューを呼び出すとlayoutSubviews、すべてのサブビューとそのサブビューが呼び出されると思いました...

各サブビューを手動でオーバーライドlayoutsubviewUIScrollViewて呼び出す必要がありますか?setNeedsDisplay

ありがとう。

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

iphone - iPhoneで写真用の柔軟なフレームを作成するにはどうすればよいですか?

私はiPhoneアプリでいくつかの小さな写真を使って柔軟なフレームを作成しようとしています。CustomViewはUIViewを継承し、そのsetFrame:メソッドをオーバーライドします。setFrame:では[self setNeedsDisplay];、写真を拡大縮小するたびに、このフレームが実際に表示されて変更されますが、何かがうまく機能しません。以下のコードと効果:

これは、self.patternImageのコードで、フレームを描画するために使用した画像です。


私のコードの効果


私のコードの効果


//回転してoriginImageの鏡像を取得します。isHorizationは回転方向を意味します-(UIImage *)fetchMirrorImage:(UIImage *)originImage direction:(BOOL)isHorization {CGSize imageSize = originImage.size; UIGraphicsBeginImageContext(imageSize); CGContextRefコンテキスト=UIGraphicsGetCurrentContext(); CGAffineTransform変換=CGAffineTransformIdentity;

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

iphone - setneedsdisplayは描画しません

画像を何度も繰り返したいのですが、コードを実行すると、「MainViewControllerがsetneedsDisplayに応答しない可能性があります」、「uiviewControllerがinitwithFrameに応答しない可能性があります」という警告が表示されてクラッシュします。これが私のコードです。

前もって感謝します..

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

iphone - setNeedsDisplay は iPhone では機能しますが、iPad では機能しません

問題のビューはルート ビューの IB で作成され、rootViewController のクラス メソッドに接続されています。ビューのクラス メソッドでは、drawRect をオーバーライドしてコンテンツを描画しています。ユーザーがいくつかのパラメーターを変更した後、rootViewController からビューで setNeedsDisplay を呼び出しています。

iPhone ではこれで問題なく動作します。ただし、iPad では、クラス メソッドの drawRect は呼び出されません。

この理由は、描画サイクルに関係していると思われます。iPhone では、ユーザーがパラメーターを変更するために使用するビューが、問題のビューの上に画面にプッシュされます。iPad では、このビューは問題のビューの上ではなく、上のルート ビューに追加されます。そのため、パラメータを変更したビューが閉じられると、iPhone とは異なり、描画サイクルが生成されないため、無効化されたビューは更新されません。

私は立ち往生しています。どんな助けでも感謝します。

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

ios - アニメーションの setNeedsDisplayInRect: メソッドの正しい使い方

独自のビュー クラスと XIB インターフェイスを使用するビュー コントローラーがあるため、ビューはコーダーから初期化されます。そのView Controllerでは、スライダーを動かすと四角形が再描画され、初期状態では四角形がフルスクリーンになり、スライダーを左に動かすと四角形のサイズが比例して小さくなります(フルスクリーンから4ピクセルで連続的に10x14まで)間隔)。「スライダーは値を変更しました」は、新しい長方形のサイズを設定するメソッドを呼び出し、「setNeedsDisplay」メソッドを送信します。また、「setNeedsDisplayInRect:」メソッドに変更すると、画面上で必要なものがすべて更新されるわけではなく、いくつかのアーティファクトがあります。しかし、デバッグすると、私が望むようにすべて更新されます。次のように、異なる長方形を更新するために送信しようとしました:

他のいくつか、同じ話。私の質問は、「setNeedsDisplayInRect:」で送信する必要がある四角形はどれですか?

2 番目の質問は、アニメーションをよりスムーズにし、コストを削減するために、ストーリー全体を高速化/最適化するにはどうすればよいでしょうか?

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

ios - setNeedsDisplayがブロック内で機能しない

CMMotionManager加速度計のデータを取得するために使用しています。重要なのは、加速度計データが定期的に印刷され、インスタンス変数がビューで変更されますが、ビューは再描画されないということです。私はそれhvがゼロではなく、すべてがフックされていることを確認しました。ブロック内でsetNeedsDisplayを呼び出すことに問題はありますか?

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

uiscrollview - UIScrollView サブビューと setNeedsDisplay

私は次の問題を抱えています:

サブビューとして UIScrollView を含む UIView があります。(ニブファイル)。プログラムでいくつかのサブビュー (UIImageView) を UIScrollView に追加します。各 UIImageview にはネットから非同期的に読み込まれた画像が含まれているため、画像がダウンロードされたときに scrollView を更新する必要があります。画像の取得を担当するクラスで、このコードを使用して、scrollView を管理する View コントローラーを宣伝します。

Ivar データは、ViewController へのポインタです。このようなことは機能せず、scrollView のリロードは発生しません 確実に呼び出しがトリガーされるようにするために、viewController 内に scrollView を含むメソッドを記述し、このメソッド内で setNeedsDisplay を呼び出しました。

メソッド updateView は正しくトリガーされます。つまり、各画像がダウンロードされた後に呼び出されますが、scrollView の内容は更新されません。scrollView を含む ViewController では、drawRect メソッドを実装していません。これが、setNeedsDisplay を呼び出した後に更新されない理由でしょうか?

ヘルプ/提案/参照などは大歓迎です よろしくお願いします