問題タブ [catextlayer]
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.
cocoa - NSView をホストするレイヤーをファイルにレンダリングする方法
各 CALayer のメソッド (または同様に、各レイヤーのデリゲートのメソッド) を実装せずに、NSView をホストするレイヤー (画面上に表示される) を PDF またはビットマップ ファイルにレンダリングする方法はありますか? 最小限の余分な描画コードを使用して、NSView の内容を正確に表示したいだけです。–drawInContext:
-(void)drawLayer:inContext:
PDFにレンダリングするには、を実装する必要があると言う多くの情報源を読みましたが-drawInContext:
、これは、カスタムレイヤーサブクラスを扱っている場合には理にかなっています(そうでなければ、何を描画するかを他にどのように知るでしょうか)が、私はしたいですCATextLayer や CAShapeLayer など、ビューに追加するだけで「機能する」レイヤーをレンダリングします。CATextLayer のコードを書き直さなければならないのは、完全に冗長に思えますが、CATextLayer がそれ自体を画面に完全に描画できるのに、どのように自分自身を描画するかを指示します。
明らかな何かを見逃しましたか?
xcode - ラップされた iOS CATextLayer が期待どおりに機能しない
複数行のテキストを持つ CATextLayer があります。ラップされたオプションは YES に設定されています。ただし、最後の行のテキストは折り返されません。\n とスペースを使用して別の行を追加すると、折り返しが発生します (ただし、これによりレイアウトが破壊されます)。
これは iOS >= 8.3 でのみ発生します
これを引き起こす可能性のあるアイデアはありますか?
cocoa - スケール変換を使用したぼやけた CATextLayer
私は途方に暮れています。ぼやけを取り除くためにすべてだと思うことを試してみましたが、CATextLayer
役に立ちませんでした。確かに、いくつかのことは役に立ちますが、テキストは 2 倍に拡大するとまだぼやけすぎており、CATextLayer
テキスト以外の鮮明さにはほど遠いものです。
これが私の状況です。CATextLayers
(カスタムCALayer
コンテナー内)を含む多くのサブレイヤーを含めることができるレイヤー ホスト ビューがあります。これで、ユーザーはメイン コンテンツ レイヤー (すべてのサブレイヤー コンテンツを含む) をズームできます。これは、スケール変換をコンテンツ レイヤーに適用することによって行われます。
これが私が現在行っていることです。大きな違いではありませんが、ほとんどの場合違いがあります。完全にズームインすると (倍率が 2 倍になります)、テキストがひどくぼやけてしまいます。
積分座標を確認する - 機能し、かなりの違いが生じますが、2x スケールではまだぼやけすぎています
CATextLayer
コンテナー レイヤーの影をオフにします - 2 倍のスケールではありませんが違いが生じますテキストレイヤーの背景色が完全に不透明であることを確認してください - 2倍のスケールではありませんが、違いがあるようです
contentsScale
プロパティをすべてのレイヤーのウィンドウバッキングスケールファクターに設定します-2倍のスケールではありませんが、違いがあるようです-drawInContext:
このカスタムサブクラスをオーバーライドCATextLayer
して、すべてをスムーズ、アンチエイリアス、およびサブピクセル量子化します。フォントはより忠実にレンダリングされますが、2 倍スケールではまだぼやけています。
コードフラグメント:
私は何が欠けていますか?
objective-c - CATextLayer() のシステム フォントを設定するには?
の場合UILabel
、システム フォントを次のように設定できます。
の場合CATextLayer
、フォント名を直接指定する代わりに、システム フォントを設定する同様の方法はありますか?
objective-c - UILabel でシステム フォントと同じフォントを表示するには、CATextLayer をどうすればよいですか?
を使用するときはUILabel
、システム フォントを次のように設定します。
今CATextLayer
、私は使用しようとして、オンラインで検索したところ、iOS 9 のシステム フォントは でSan Francisco
あり、フォント名は.SFUIText-Medium
であることがわかったので、フォント名を次のように設定しようとします。
ただし、デバイス画面に表示されるフォントは、上記で説明したUILabel
&とは異なります。とまったく同じフォントを表示できるように、ここCATextLayer
で使用する正しいフォント名は何ですか?CATextLayer
UILabel