問題タブ [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.
iphone - UIViewのsetNeedsDisplayに関する混乱
UITableView*myTableViewのivarがあります。インターネットからデータを読み込んでいるので、データが読み込まれたときに[myTableView setNeedsDisplay]を呼び出す必要がありますが、[myTableView reloadData]を呼び出すことができるか、呼び出す必要があることはわかっていますが、setNeedsDisplayの呼び出しも機能するはずですが、機能していません。
setNeedsDisplayが何をするのかについての説明を探していますか?UITableViewインスタンスで呼び出されたとき。
ドキュメントによると、setNeedsDisplayは「次の描画サイクル」でdrawRectを呼び出します。だから、誰もが次の描画サイクルは何であるかを教えてもらえますか?
objective-c - setNeedsDisplay は *常に* 再描画されますか?
cocoa を使用してカスタム ビュー アプリケーションを作成しました。そして後で(はい、それが悪いことはわかっています)、私は自問自答しました:これはココアタッチでもうまくいくでしょうか?もちろん、id はすぐには機能しませんでした。クラス名などを変更する必要がありました。さて、私はビューが必要なときはいつでもNSTimer
、setNeedsDisplay:
メソッドを使用してビューを更新しました。ココアの下ではかなりうまくいきましたが、ココアタッチの下ではまったくうまくいきませんでした.
私はそれを自分自身に説明することはできません.実際には、どのコード行が誰かが問題を解決するのに役立つかわかりません. 多分ここにタイマーがあります:
そして、それはターゲットです:
タイマーは 30 ミリ秒ごとに呼び出されます。NSLog で確認しました。
このdrawRect:
方法では、実際にいくつかの図形を描画するだけで、他には何もしませんでした。何らかのclearRect:
メソッドを呼び出す必要がある場合に備えて。私が言ったように、ココアの下ではうまくいきました。
objective-c - UIImage の setNeedsDisplay が機能しない
ボタンがタッチされたときに dataBuffer を使用して UIImage に線を描画しようとしていますが、drawRect: .. メソッドが呼び出されません。(なので、描きたい線が出てこない)
どこに問題があるのか 本当にわからないので、かなり多くのコードを投稿しました。申し訳ありません。
ところで、私はビューベースのアプリケーションに取り組んでいます。
ここに私のコードがあります:
objective-c - UIView サブビューの setNeedsLayout
私はUIViewController
とを持っていますwillRotateToInterfaceOrientation
, 私は呼んでいます[self view] setNeedsLayout];
このビュー呼び出しはサブビューの (a UIScrollView
)layoutSubviews
メソッドですが、サブビューUIScrollView
は呼び出しませんlayoutSubviews
。これが本来あるべき姿ですか?setNeedsLayout
ビューを呼び出すとlayoutSubviews
、すべてのサブビューとそのサブビューが呼び出されると思いました...
各サブビューを手動でオーバーライドlayoutsubview
しUIScrollView
て呼び出す必要がありますか?setNeedsDisplay
ありがとう。
iphone - iPhoneで写真用の柔軟なフレームを作成するにはどうすればよいですか?
私はiPhoneアプリでいくつかの小さな写真を使って柔軟なフレームを作成しようとしています。CustomViewはUIViewを継承し、そのsetFrame:
メソッドをオーバーライドします。setFrame:では[self setNeedsDisplay];
、写真を拡大縮小するたびに、このフレームが実際に表示されて変更されますが、何かがうまく機能しません。以下のコードと効果:
//回転してoriginImageの鏡像を取得します。isHorizationは回転方向を意味します-(UIImage *)fetchMirrorImage:(UIImage *)originImage direction:(BOOL)isHorization {CGSize imageSize = originImage.size; UIGraphicsBeginImageContext(imageSize); CGContextRefコンテキスト=UIGraphicsGetCurrentContext(); CGAffineTransform変換=CGAffineTransformIdentity;
iphone - setneedsdisplayは描画しません
画像を何度も繰り返したいのですが、コードを実行すると、「MainViewControllerがsetneedsDisplayに応答しない可能性があります」、「uiviewControllerがinitwithFrameに応答しない可能性があります」という警告が表示されてクラッシュします。これが私のコードです。
前もって感謝します..
iphone - setNeedsDisplay は iPhone では機能しますが、iPad では機能しません
問題のビューはルート ビューの IB で作成され、rootViewController のクラス メソッドに接続されています。ビューのクラス メソッドでは、drawRect をオーバーライドしてコンテンツを描画しています。ユーザーがいくつかのパラメーターを変更した後、rootViewController からビューで setNeedsDisplay を呼び出しています。
iPhone ではこれで問題なく動作します。ただし、iPad では、クラス メソッドの drawRect は呼び出されません。
この理由は、描画サイクルに関係していると思われます。iPhone では、ユーザーがパラメーターを変更するために使用するビューが、問題のビューの上に画面にプッシュされます。iPad では、このビューは問題のビューの上ではなく、上のルート ビューに追加されます。そのため、パラメータを変更したビューが閉じられると、iPhone とは異なり、描画サイクルが生成されないため、無効化されたビューは更新されません。
私は立ち往生しています。どんな助けでも感謝します。
ios - アニメーションの setNeedsDisplayInRect: メソッドの正しい使い方
独自のビュー クラスと XIB インターフェイスを使用するビュー コントローラーがあるため、ビューはコーダーから初期化されます。そのView Controllerでは、スライダーを動かすと四角形が再描画され、初期状態では四角形がフルスクリーンになり、スライダーを左に動かすと四角形のサイズが比例して小さくなります(フルスクリーンから4ピクセルで連続的に10x14まで)間隔)。「スライダーは値を変更しました」は、新しい長方形のサイズを設定するメソッドを呼び出し、「setNeedsDisplay」メソッドを送信します。また、「setNeedsDisplayInRect:」メソッドに変更すると、画面上で必要なものがすべて更新されるわけではなく、いくつかのアーティファクトがあります。しかし、デバッグすると、私が望むようにすべて更新されます。次のように、異なる長方形を更新するために送信しようとしました:
他のいくつか、同じ話。私の質問は、「setNeedsDisplayInRect:」で送信する必要がある四角形はどれですか?
2 番目の質問は、アニメーションをよりスムーズにし、コストを削減するために、ストーリー全体を高速化/最適化するにはどうすればよいでしょうか?
ios - setNeedsDisplayがブロック内で機能しない
CMMotionManager
加速度計のデータを取得するために使用しています。重要なのは、加速度計データが定期的に印刷され、インスタンス変数がビューで変更されますが、ビューは再描画されないということです。私はそれhv
がゼロではなく、すべてがフックされていることを確認しました。ブロック内でsetNeedsDisplayを呼び出すことに問題はありますか?
uiscrollview - UIScrollView サブビューと setNeedsDisplay
私は次の問題を抱えています:
サブビューとして UIScrollView を含む UIView があります。(ニブファイル)。プログラムでいくつかのサブビュー (UIImageView) を UIScrollView に追加します。各 UIImageview にはネットから非同期的に読み込まれた画像が含まれているため、画像がダウンロードされたときに scrollView を更新する必要があります。画像の取得を担当するクラスで、このコードを使用して、scrollView を管理する View コントローラーを宣伝します。
Ivar データは、ViewController へのポインタです。このようなことは機能せず、scrollView のリロードは発生しません 確実に呼び出しがトリガーされるようにするために、viewController 内に scrollView を含むメソッドを記述し、このメソッド内で setNeedsDisplay を呼び出しました。
メソッド updateView は正しくトリガーされます。つまり、各画像がダウンロードされた後に呼び出されますが、scrollView の内容は更新されません。scrollView を含む ViewController では、drawRect メソッドを実装していません。これが、setNeedsDisplay を呼び出した後に更新されない理由でしょうか?
ヘルプ/提案/参照などは大歓迎です よろしくお願いします