問題タブ [cglayer]

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

ios - drawRect で多数のパスを描画する

ビューの drawRect で 512 未満の多数のパスをレンダリングする最適な方法は何でしょうか?

2 ピクセル幅のセグメントを 512 個までリアルタイムで描画したいのですが、これを最高のパフォーマンスで行う方法がわかりません。

これらすべてのセグメントを BezierPath または複数の bezierPath として作成および描画するのは、十分に高速ではありません。

CGLayers を使用してターゲット UIView にレンダリングできることを読みました。

ビューのコンテキストからレイヤーを設定し、独自のコンテキストで別の場所にあるレイヤーに書き込んだ後、レイヤーを次のようにビューに描画できます。

レイヤーで何かが常に描画されている場合、いつ setNeedsDisplay で UIView に通知する必要があり、同期を維持できますか? たとえば、メイン スレッドに setNeedsDisplay をディスパッチしない場合 (これは適切ではありません)。

この最適化が行われた後、レイヤー内の非常に多くのパス/ラインをレンダリングする最良の方法は何ですか?

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

ios - QuartzCore.framework を Swift にインポートするにはどうすればよいですか?

テキストフィールドに borderColor を追加するには QuartzCore.framework が必要です。

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

ios - 同時に複数の CGLayers に描画するには?

for同じループ内から 2 つの別々の CGLayer にオブジェクトを描画したいのですが、これを行う方法がわかりません。

たとえば、3 つの青い円の後ろに3つのオレンジ色の円を描きたいと思います。オレンジ色の円は 1 つのレイヤーにあり、青い円は別のレイヤーにあります。次のコードは、各円を前の円の上に配置します。

上記のコードからの出力

orangeLayer3 つのオレンジ色の円がの 3 つの青い円の後ろにある になるように、これをどのように変更しblueLayerますか? これはコンテキストの保存と復元に関係していると思いますが、実際には頭を悩ませることはできません。

本当にありがとう!

PS: 2 つのforループをインラインで使用するだけで適切な効果が得られることはわかっていますが、この例はレイヤリングを学習するためのものです。ありがとう!

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

objective-c - CGLayer の配列をファイルに保存する

PDFコンテキストに配置される446個のCGLayersを保存する必要があるOSXアプリケーションに取り組んでおり、アプリケーションのロード時にそれらを生成するのではなく、ファイルからそれらを読み書きする方法があるかどうか疑問に思っています

CGLayer が推奨されなくなったことを読みましたが、必要なものに本当に合っていると感じています。また、bitmapGraphicsContexts を使用すると、ズームイン時にピクセル化する可​​能性があります。

それらを NSValue に格納することと、ブリッジングによって配列に入れることの両方によって、それらを NSArrays に格納することができます。それらをC配列に格納しようとしましたが、うまくいきませんでした。

これらの配列をファイルに保存しようとすると、私の問題が発生します。writeToFile: は CGLayers では機能しませんが、レイヤーが NSValues にある場合またはブリッジされている場合の両方で、NSKeyedArchiver/NSKeyedUnarchiver も機能しませんでした。

これは、ファイルから単一のレイヤーを含む配列を読み書きしようとする私の方法です。

[NSKeyedArchiver encodeValueOfObjCType:at:]: unknown type encoding ('^')') was raisedCGLayerRef 型のおかげで、私はこれから得ます。

必要なさまざまな注釈を描画するために必要な行はかなり長いので、起動時に毎回作成することなく、それらを作成してファイルに保存する方法を見つけようとしています。これまでのところ、これを行う方法はわかりませんが、ここにいる誰かがその方法を知っていて、助けてくれることを願っていました.

0 投票する
4 に答える
8378 参照

iphone - AVPlayerLayer が UIView フレームにバインドされていません

AVPlayerLayer を UIView に追加しようとしています

これは動画のコンテナです (青色):

これはビューです:

制約: 制約:

最終結果: ここに画像の説明を入力

ビデオが UIVIew 座標に限定されない理由がわかりません。コントローラーのスーパービューにバインドすればOKです。

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

ios - iOS: iPhone6(s) でのみ、UIButton の境界線の色がぼやけている/ぼやけて見える

私はこの質問に数日間頭を悩ませてきました。

基本的に、問題は次のとおりです。

このUIButtonのUIImageViewに画像が配置された正方形のボタン(幅と高さが等しい)があります。そして、このボタンに円形の境界線が必要です。だから私はこの方法でそれを達成します:

さて、境界線は円形ですが、iphone6/iphone6sで表示すると、境界線が非常にぼやけたり、ぼやけて見えたり、下の境界線が少し切り取られたりします。ただし、iphone5s/iphone6 plus の場合は、境界線の見栄えが良くなります (まだ少しぼやけています)。それで、何がこの問題を引き起こしたのだろうか?

iPhone 6 での表示は次のとおりです (左はボーダー幅 0.5f、右は 1.f):

ここに画像の説明を入力

そして、これがiphone5sでどのように見えるかです(少なくとも私はまだ下の境界線を持っています):

ここに画像の説明を入力

よろしくお願いします!

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

ios - UIView 内のグラフィックスの Z レベル

私は、ユーザーがロックされた領域を塗りつぶし、指の動きで単純に線を描くことができる描画アプリに取り組んでいます。

ロックされた領域は SVG (パス) として提供されるため、SVGKit ライブラリを使用して画面にレンダリングしています (ビュー内の CAShapeLayers として)。次に、基本的に適切なレイヤーでfillColorを使用して、タッチで塗りつぶします。

ただし、線の描画では Core Graphics が機能し (CGContextStrokePath)、線は常に CALayers 階層内に含まれるすべての下に描画されます。したがって、基本的には塗りつぶされた領域の下にあります。

私が到達しようとしているのは、最後に適用された描画が常に一番上にあるシステムです。そのため、塗りつぶしを適用すると領域内の線が上書きされ、次に線を描画すると、塗りつぶされたゾーンの上に表示されます。

CGLayer の z-index は CALayer の z-index よりも小さいようです。私の目標には別のアプローチが必要です...