問題タブ [cashapelayer]
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.
macos - CATextLayer gets rasterized too early and it is blurred
I have some troubles with CATextLayer, that could be due to me, but I didn't find any help on this topic. I am on OS X (on iOS it should be the same).
I create a CATextLayer layers with scale factor > 1 and what I get is a blurred text. The layer is rasterized before applying the scale, I think. Is this the expected behavior? I hope it is not, because it just makes no sense... A CAShapeLayer is rasterized after that its transformation matrix is applied, why the CATextLayer should be different?
In case I am doing something wrong... what is it??
The solution I use at the moment is to set the contentsScale property of the layer to the scale factor. The problem is that this solution doesn't scale: if the scale factor of any of the parent layers changes, then contentsScale should be updated too. I should write code to traverse the layers tree to update the contentsScale properties of all CATextLayers... not exactly what I would like to do.
Another solution, that is not really a solution, is to convert the text to a shape and use a CAShapeLayer. But then I don't see the point of having CATextLayers.
A custom subclass of CALayer could help in solving this problem?
EDIT: Even CAGradientLayer is able to render its contents, like CAShapeLayer, after that its transformation matrix is applied. Can someone explain how it is possible?
EDIT 2: My guess is that paths and gradients are rendered as OpenGL display lists, so they are rasterized at the actual size on the screen by OpenGL itself. Texts are rasterized by Core Animation, so they are bitmaps for OpenGL.
I think that I will go with the contentsScale solution for the moment. Maybe, in the future, I will convert texts to shapes. In order to get best results with little work, this is the code I use now:
iphone - iOS の外部塗りつぶしの色
2 つの長方形 (2 つの閉じたサブcgpaths
) があります。長方形 B は小さく、長方形 A 内に存在します。その中にあるすべてのエッジ。長方形Bの外側の色領域を直接塗りつぶす方法はありますか.
CAShapeLayer fillExternalColor
そんな感じ?直接的な方法ではない場合、プログラムでこれを行う方法は?
A - 紫色 B - 黄色
ということで、Aを描いてからBを描いてみました。Bはクリアカラーにしたかったのですが(とりあえずイエローを入れました)、Aが紫色に見えてしまいました。
AnB を与える CGRectIntersection メソッドと AuB を与える CGRectUnion メソッドを見つけました。AuB - AnB である残りの領域を与える方法はありますか?
iphone - CAShapeLayer 線画
(X,Y axis)
を使用して、ある位置から別の位置まで 5 つのカスタム uiview (UITableView 行など) に線を引いていCAShapeLayer
ます。
CAShapeLayer
私の問題は、 (私の場合は行) が現在どのビューにあるかを知りたいということですCGIntersect
。などはCALayer
ありますCGRect
か? チャート API の代わりにコア アニメーションを使用してグラフを作成しようとしています。
ios - iPhoneでマスクされた画像の部分を取得する方法
画像をマスクするために CAShapeLayer を使用しましたが、マスクした部分だけを取得したいと考えています。取得すると、完全な画像しか取得できません。
Can anyone please provide me some code/information regarding this ?
CAShapeLayer *maskLayer = [CAShapeLayer layer];
Thanks in advance :)
ios - 位置を設定した後に CAShapeLayer でタッチする
結合して CAShapeLayer に追加する一連の UIBezierPaths があります。ユーザーが触れた形状レイヤーの場所を検出する必要があります。ただし、シェイプレイヤーの位置を変更したため、シェイプレイヤーをタップすると、タップ座標とベジェパスの元の場所の座標を比較しているため、タップが検出されません。CAShapeLayer の現在の場所を簡単にタップできるかどうかは誰にもわかりませんか? タップ起点の基礎となるベジエ パスに依存する代わりに。