問題タブ [drawrect]

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

iphone - UIViewが単なるコンテナである場合、drawrectをオーバーライドする必要がありますか?

Appleのドキュメントによると、「サブクラスが他のビューのコンテナである場合、サブクラスは-[UIView drawRect:]をオーバーライドする必要はありません。」

私はカスタムUIViewサブクラスを持っていますが、これは実際には他のビューの単なるコンテナーです。しかし、含まれているビューは描画されていません。カスタムUIViewサブクラスを設定する適切なコードは次のとおりです。

このカスタムUIViewを表示するコードを実行すると、何も表示されません。しかし、drawRectメソッドを追加すると...

...サブビューが表示されます。(明らかに、これはこれを行うための正しい方法ではありません。これは、ドキュメントの記述に反しているだけでなく、常に両方のサブビューを表示し、UIView内の隠されたプロパティを設定する他のコードを完全に無視しているためです。ビューの1つで、z順序などを無視します。)

とにかく、主な質問:drawRectをオーバーライドしていないのにサブビューが表示されないのはなぜですか?

ありがとう!

アップデート:

問題がカスタムサブビューにないことを確認するために、UILabelも追加しました。したがって、コードは次のようになります。

「X」も表示されません。

更新2:

カスタムUIView(OffOnLightView)を呼び出すコードは次のとおりです。

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

objective-c - UIView::drawRect で UImage を描画できません

これは簡単な作業のように思えるので、画像をレンダリングできない理由がわかりません。

UIView をセットアップするときは、次のようにします。

UIView の init 関数で UIImage を作成して保持します。

次に、私の drawRect は次のようになります。

最終的には、ビットマップ コンテキストを介してその UIImage を操作し、drawRect でコンテキストから CGImage を作成してレンダリングしますが、今のところ、既知の画像をレンダリングしようとしています。

私はこのサイトとドキュメントを掘り下げてきました。私は CG パスをたどり、他の人が投稿した多数の例に従って CGContextDrawImage で描画しようとしましたが、それもうまくいきませんでした。

そこで、画像を描画する最も簡単な方法と思われる方法に戻ってきましたが、うまくいきません。

どんな助けでも大歓迎です。

前もって感謝します。

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

iphone - drawRect:でパスをグラデーションで塗りつぶす方法は?

単色でパスを塗りつぶすのは簡単です。

赤一色ではなくグラデーションを描きたいのですが、うまくいきません。質問/回答: Gradients on UIView and UILabels On iPhone にリストされているコードを試しました

つまり:

ただし、これは、これが含まれているビュー全体をグラデーションでペイントし、元のパスを覆い隠します。

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

iphone - CATiledlayer を使用する場合、drawRect: は複数のスレッドで呼び出されますか?

を使用すると複数のスレッドで呼び出されることはわかっていますがdrawLayer:、はどうですか?drawlayer:inContext:CATiledlayerdrawRect:

Apple の PhotoScroller のサンプル コードはdrawRect:、ディスクからイメージを取得するために使用され、スレッドを処理するための特別なコードはありません。

のモデルCATiledLayerがスレッドセーフである必要があるかどうかを判断しようとしています。

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

iphone - ViewController と drawRect

UIViewController があり、drawRect を呼び出してビューに描画できるようにしたいのですが、何も起こりません。

そして実装

しかし、アプリの実行時にビューにポニーが描画されません。何が間違っていますか?

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

iphone - DrawRectとNSTimerのパフォーマンスの問題

リールが回転するスロットマシンのアニメーションを作ろうとしています。これを行うために、私はdrawRectを使用して、UIViewから継承するカスタムクラスで画像を描画しています。nstimerを使用して画像の位置を更新し、[selfsetNeedsDisplay]を呼び出して図面を更新しています。シミュレーターでは非常に見栄えがしますが、デバイスでは非常に遅くなります。自分の描画方法に何か問題があるのか​​、それとももっと良い解決策があるのだろうかと思っていました。

UIScrollViewを使用したCoreAnimationの試み:

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

iphone - UIScrollViewのスクロールが適切ではありません

ビュープロパティがUIScrollViewサブクラス(たとえばProfileScrollView)に設定されているUIViewControllerサブクラスがあります。これで、drawRect:メソッドをオーバーライドしました。このメソッドでは、多くのテキストを描画し、テキスト間のサブビューとしてUIButtonを配置します。テキストデータに応じて、このdrawRect:メソッドでscrollViewのcontentSizeを設定します。このビューをスクロールすると、ボタンはスクロールしますが、テキストは停滞したままになります。この問題を手伝ってください。ありがとう

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

iphone - カスタム drawRect メソッドで UIView を適切に変換する方法

PNG 画像の下に素敵なソフト シャドウを追加する UIView サブクラスを作成しました。drawRect メソッドをオーバーライドして、画像を描画し、影を追加しています。

ここで、(.transform メソッドを呼び出して) UIView でスケール/回転アフィン変換を実行しようとすると、drawRect メソッドの最初の「平坦化」が原因で、探している結果が得られません。

スケーリング時に同じオフセットに留まるように、シャドウを「再描画」したいと思います。transform メソッドをオーバーライドして画像を再描画しようとしましたが、成功しませんでした。

私は現在正しい方向を見ているのだろうかと思っていました。

  • 実際に画像を再描画して、複雑な CG 変換を作成し、毎回影を追加する必要がありますか?
  • これは物事を再描画するパフォーマンスの高い方法ですか?
  • 変換メソッドはコンテナ全体のサイズを変更するように見え、画像全体のアンチエイリアシングを混同し、ギザギザのエッジになります。それについて何か考えはありますか?
0 投票する
1 に答える
283 参照

iphone - テーブルセルの contentview で drawAtPoint が重複した画像を作成するのはなぜですか?

カスタムスライダーのあるビューがあります。UITableViewCell のインスタンスを生成する TableViewController のサブクラスを使用しています。各 tableViewCell 内に、カスタム スライダー (UI ビュー) をサブビューとして追加します。ここには、スライダーのコントロール ノブとして機能するビューがあります。これは、ジェスチャー認識機能を備えた UIView の単なるサブクラスです。コントロール ノブ クラスの drawRect メソッドは、UIImage を受け取り、drawAtPoint を実行します。これはうまくいきます!要約すると、次のようになります。

UITableView -> UITableViewCell -> UITableViewCell.contentView -> SliderView -> SliderKnob -> UIImage

この問題は、テーブル ビューからテーブル セルをスクロールするときに発生します。ノブの UIImage は保持されます。セルがキューから取り出されるたびに、残りの画像の複製を取得することになります。いくつかの NSLog ステートメントをセットアップし、各サブビューで drawRect が呼び出されることを確認しました。セルのレンダリングを更新するために必要なことはありますか? UITableViewCell のサブビューで setNeedsDisplay を使用しようとしましたが、UIImage の複製を防ぐことができませんでした。

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

iphone - UIScrollViewはスクロール中にコンテンツを再描画しますか?

スクロール中に scrollview/uiview が drawRect: メソッドを呼び出すプロパティまたはメソッドがあることは知っています。デフォルトではパフォーマンス上の理由から無効になっていますが、有効にする必要があります。メソッドの名前を思い出せないので、探すことができません。探しているものを知っている人はいますか?

前もって感謝します