問題タブ [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.
iphone - サブビューを追加しようとしていますが、drawRect が呼び出されません
サブビューをメイン ビューに追加しようとしています。私のviewControllerからの関連コードは次のとおりです。
myView の drawRect は呼び出されません。
ただし、ViewController のメイン ビューとして MyUIViewSubclass を使用すると (Interface Builder で設定)、drawRect が呼び出されます。
サブビューで drawRect を呼び出すにはどうすればよいですか?
iphone - drawRect から UIView の境界の外側に描画します
私の質問は、明確な回答が得られなかったときにclipToBounds = NOの場合、外側の境界を描画していないというものと非常によく似ています。
基本的に私はUIViewを持っていて、その中心から画面の端まで線を引きたいと思っています。これらのポイントがどこにあるかを計算するのは簡単です[self convertPoint:(CGPoint){0,0} fromView:[self superview]];
(これは、ビューのスーパービューに関して原点を見つけます。しかし、ビューの drawRect: から線を引くと、ビューの境界で切り取られます。
ビューの境界の外に描画する方法はありますか? clipsToBounds プロパティを変更してみましたが、効果がないようです。
複数のビューでこれを行う必要があり、一部が他のビューの前にあるため、スーパービューから線を引くことができません...スーパービューの drawRect からレイヤーを理解するのは悪い考えのようです。
同様に、ビューの境界をサイズ変更して画面全体を含めることはできないと思います。これは、ビューを動的にサイズ変更する必要があるためです...これが機能するには、境界が巨大 (> 20,000 ポイントの正方形) である必要があります。 .
ios - UILabelを使用せずにdrawRect:メソッドのNSStringテキストにドロップシャドウを追加する
NSString (UIStringDrawing)
iOSが提供するカテゴリメソッドを使用して描画されたテキストにドロップシャドウを追加したいと思います。
明らかに、ドロップシャドウオプションはありません。
はい、ここでUILabelを使用して、ドロップシャドウプロパティを設定することはできますが、UIViewサブクラス(UILabelなど)はCALayerオブジェクトをラップし、(パフォーマンス的に)重くなるため、パフォーマンスは低下します。
コンテキストは次のとおりです。
drawRect:
合成されたUIViewサブクラスのNibファイルからテーブルセルを作成する代わりに、テーブルセルビューに実装して、UITableViewCellサブクラスのカスタム描画を行っています。
多数のUIViewサブクラスを合成すると、これを無駄なく維持し、テーブルビューのスクロールパフォーマンスで毎秒50〜60フレーム以内にとどまろうとする目的が無効になります。
少しずらして文字列を2回描いてみました。これは、私が行っているセルの背景色のドロップシャドウの色を微調整すると許容できるようになる可能性がありますが、かなり厄介なようです。確かに、UILabelで得られるようなドロップシャドウブラープロパティはありません。
私は解決策を探しましたが、UILabelの使用法を推奨しています(テーブルセルビューに合成される約12の異なるテキスト要素があるため、上記で却下しました)またはCGContextSetShadow()
。後者は常に長方形のコンテキストで提案されているようであり、必ずしもdrawAtPoint...
上記のNSStringメソッドで直接描画されたテキストのパスに影を付けるためではありません。(私はそれを試しましたが、うまくいかなかったようです(つまり、何も変更されていません)。コアグラフィックスの描画は初めてです)。
提案?
iphone - UIView の draw と addSubview
こんにちは、Interface Builder を使用して UIView に 2 つのボタンを追加し、これら 2 つのボタンの間に線を引きたいと思います。これはどのように可能ですか?提案してください。ありがとう
ios - drawRect:速度とCGContextDrawRadialGradient(超低速?)
UIView
サブクラスのdrawRect:
関数に問題があります。私はそれに使用CGContextDrawRadialGradient()
します、そしてそれ。ユーザーがUIViewをドラッグすると、グラデーションを含めると追いつくのに苦労しました。
Time Profilerを使用すると、文字通り私の時間の98%以上がサブクラス' drawRect
:メソッドに費やされていることがわかります。
まず、グラデーションの静止画像を使用する方が速いでしょうか?第二に:これをスピードアップする方法はありますか?どういうわけかグラデーションをキャッシュできますか?あまり変化しませんが、をドラッグすると、周囲のパスと交差するパスが変化しますUIView
。
drawRect:
メソッドがすべてのCPUサイクルを吸い上げないようにする方法に関する一般的なガイドを誰かが知っているなら、それは素晴らしいことです。
iphone - セルの読み取り/未読み取り (drawrect を使用)
私のアプリは、インターネットから UITableViewCell に投稿をダウンロードしています。ユーザーがセルをタップすると、この記事を既読として設定する必要があります(Mail.appのように)。その方法がわかりません。データベース(「url | url | url」など)にURL(ユーザーがセルを押したとき)を追加し、詳細ビューを開きます。そして、UITableView に戻って、DB 内の既存の URL をチェックします。現在のテーブルは遅すぎます! 私を助けて、それを行うために私が使用できる他の方法を教えてもらえますか? mail.app のように。drawRect メソッドでカスタム セルとコードを使用しています。助けてください
Ok。私のコードは悪いので、ここで何をしているのか理解できます)他の質問に答えてください。非表示のセルを更新するにはどうすればよいですか? ユーザーは、一度に 6 つのセルしか表示しません。たとえば、10 個のセルを更新する必要があります。どのように?または、セルが既に存在する場合、どのようにセルをリロードしますか? まあ言ってみれば -
現在、セルが存在し、データのリロードを呼び出しても何も起こりません。また、セルには一意の識別子と ixists があるため、 reloadCellAtIndexPath も機能しません。
セルをリロードして DRAWRECT を再度呼び出すにはどうすればよいですか?))
cocoa-touch - iPadで多数の線(CGContextBeginPath)を描画する
たくさん描くiPadアプリケーションを作ろうとしていますが、実際にはステージ上にたくさんの線があります(10.000+)
この単純なforloopを使用すると、40〜60秒後にiPadがクラッシュします(結果は表示されません)
これは私の「DrawLine」クラスです。
どうすればこの問題を解決できますか?iOSをクラッシュさせずに、これだけのサブビューを描画するにはどうすればよいですか?
本当にありがとう!!:)
iphone - setNeedsDisplay を呼び出した後、UIView サブクラスが再描画されないのはなぜですか?
UITableViewCell のサブビューであるカスタム UIView があります。セルが描画されると、UIView サブクラスで drawRect: を正しく呼び出して、カスタム ビューも描画されます。セルがリロードされると、ビューが正しく描画されます (drawRect:
が呼び出されます)。
特定のイベント (タイマーなど) が発生すると、セル全体をリロードせずにビューを再描画したいと考えています。(セル内のビューはこれだけではありません。)
ただし、サブビューを呼び出しsetNeedsDisplay
ても何も起こりません。
私のビューdrawRect:
が呼び出されると、結果の画像がバッキングのどこかにキャッシュされ、setNeedsDisplay
そのバッキングが画面に再描画されるようになると思いますが、drawRect:
呼び出しが再び呼び出されることはありません。
drawRect:
セルが作成された後に二度と呼び出されないのはなぜですか?
編集: セルのサブビューは nib から作成されます。つまり、UIViewController が nib からロードされ、そのビューが UITableViewCell に追加されます。
(コードで作成された) nib からロードされていないカスタム ビューを使用してテスト ケースを最初から作成しましたが、期待どおりに動作setNeedsDisplay
し、drawRect:
呼び出しが発生します。これは、.xib ファイルで設定されたものか、ビューが nib からロードされたときに別の方法でビューに発生するものでなければなりません。
uiimage - タイル画像を表示する場合、どちらの方法が良いですか?
画像をタイルで表示してみましたが、以下のような方法があると思いますが、どれが良いかはわかりませんが、すべての方法を試すことができますが、経験から情報を得ることができれば幸いです。
- UIImageView + AnimatedGif のタイルを使用
- カスタム スタイル + AnimatedGif で UIButton のタイルを使用する
- UIWebView のタイルを使用 (gif89a 用)
- UIView を使用して UIImage のタイルを描画する
cocoa - setNeedsDisplay:True 有効にしないと再描画されませんか?
メイン ウィンドウのサブビューであるカスタム ビューがあります。ビューの描画を更新する [self setNeedsDisplay:TRUE] を起動するタイマーがあります。しかし、私が見る限り、アプリケーションをバックグラウンドのままにして別のアプリケーションに切り替えると、アプリケーションをもう一度クリックするまで、新しい描画機能は反映されません。何が欠けている可能性がありますか?ありがとう、ホセ。