问题标签 [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.

0 投票
4 回答
2149 浏览

macos - CATextLayer 过早栅格化并且模糊

我在使用 CATextLayer 时遇到了一些问题,这可能是我自己造成的,但我没有找到关于这个主题的任何帮助。我在 OS X 上(在 iOS 上应该是一样的)。

我创建了一个比例因子 > 1 的 CATextLayer 图层,我得到的是一个模糊的文本。我认为,在应用比例之前,图层会被栅格化。这是预期的行为吗?我希望不是,因为它没有任何意义...... CAShapeLayer 在应用它的变换矩阵之后被光栅化,为什么 CATextLayer 应该不同?

万一我做错了什么……那是什么?

我目前使用的解决方案是将图层的 contentsScale 属性设置为比例因子。问题是这个解决方案不能缩放:如果任何父层的缩放因子发生变化,那么 contentsScale 也应该更新。我应该编写代码来遍历图层树以更新所有 CATextLayers 的 contentsScale 属性......这不完全是我想做的。

另一种解决方案(不是真正的解决方案)是将文本转换为形状并使用 CAShapeLayer。但后来我看不出拥有 CATextLayers 的意义。

CALayer 的自定义子类可以帮助解决这个问题吗?

编辑:甚至 CAGradientLayer 也能够渲染其内容,如 CAShapeLayer,之后应用其变换矩阵。有人可以解释这是怎么可能的吗?

编辑 2:我的猜测是路径和渐变被渲染为 OpenGL 显示列表,因此它们由 OpenGL 本身以屏幕上的实际大小进行光栅化。文本由 Core Animation 光栅化,因此它们是 OpenGL 的位图。

我想我现在会使用 contentsScale 解决方案。也许,在未来,我会将文本转换为形状。为了通过少量工作获得最佳结果,这是我现在使用的代码:

0 投票
0 回答
718 浏览

iphone - 为什么在调用 removeAllAnimations 之后调用 animationDidStart?

animationDidStartCABasicAnimation委托)中,我想更新一个CATextLayer. 但是,如果用户触摸屏幕,我想删除所有正在进行的动画[self.maskLayer removeAllAnimations];(我的所有动画都是按顺序播放的)。

但是,在仍然调用AND之后removeAllAnimations,动画本身不会显示。显然,这不是我想要的。animationDidStartanimationDidStop

动画添加如下:

如何防止这种情况?这个问题已经花了我几个小时了:(

谢谢!

0 投票
1 回答
403 浏览

macos - CATextLayer 字形被剪裁或切掉

我试图创建一个动画文本标签,突然这个奇怪的问题袭击了我。我正在尝试在视图上使用 CATextLayer 写出一个简单的标签。如您所见,我尝试使用 NSAttributedString 类的 sizeWithAttributes: 来计算文本的框架。即使我使用图层显示相同的属性字符串,这也会给出一个不完全适合 CATextLayer 的框架。

任何有关为什么会发生这种奇怪的字体渲染问题的见解都将不胜感激。

0 投票
1 回答
640 浏览

macos - 附加 NSAttributedStrings 未按预期工作

我正在尝试附加属性字符串以制作像“G#m7”这样的和弦名称,其中 # 和 7 是上标。我这样做是这样的:

然后我将它添加到 CATextLayer 中进行显示。不幸的是,它没有按预期工作。上标不是上标,和它一起返回的[fullstring size] 很远,导致很难放置层。我打开了边框宽度来演示尺寸问题。

在此处输入图像描述

我已经为上标属性尝试了不同的字体大小和值。有任何想法吗?

0 投票
1 回答
1525 浏览

ios - 动态更改 CATextLayer 的文本

我一直在努力解决这个问题。我已将 CATextLayer 添加到 CALayer 中,并且在进行了几次操作后,我想将 CATextLayer 的文本更改为不同的内容。有没有一种简单的方法可以做到这一点?下面我有一些下面的代码似乎不起作用。

后来我在一个方法中调用它

但调用它不会改变屏幕上的文本。

任何帮助都会很棒!

0 投票
1 回答
1598 浏览

iphone - Number of line in CATextlayer?

I have a dynamic string with dynamic length. I use CATextlayer to draw it in a view. I set wrapped = YES, but I don't know how to check the number of line of CATextlayer in a view to set dynamic frame for another view. Please help me. Thanks.

0 投票
4 回答
2184 浏览

iphone - CATextlayer 设置行距?

我对 CATextlayer 有疑问。我为 CATextlayer 设置了 Wrapped == YES 并为此自动设置了多行。但是行间距很小,看起来很糟糕。有没有办法为 CATextlayer 设置行距?谢谢。

0 投票
1 回答
182 浏览

c# - 在 Monotouch 中使用 CATextLayer 显示 NSAttributedString

我正在使用 CATextLayer 来呈现 NSAttributedString。在此方法中完成时,颜色无法正确渲染。使用 CTStringAttributes 完成后,颜色会起作用,但 NSAttributedString 不知道自己的大小。这是我正在使用的代码:

0 投票
2 回答
1040 浏览

ios - 使用透明 CALayers 平滑滚动 UIScrollView

我正在开发一个 iPhone 应用程序,该应用程序将显示大型可滚动和可缩放表面,其中包含图片网格和文本标签。我需要能够单独更改图片的位置并控制标签的不透明度级别。我试图通过使用UIScrollViewCore Animation 来实现这些目标。

的子视图UIScrollView包含两个主要子层:一个用于显示图片,一个用于标签。图片CALayers的内容属性设置为CGImage,并将它们作为子图层添加到图片图层。标签是CATextLayers并且它们是第二层的子层。标签层的透明度根据滚动视图的缩放比例而变化。

这就是问题所在:当标签完全不透明或完全透明时,一切正常,但当它们是半透明时,滚动开始变得生涩,FPS 降至 35 左右。显然,这些图层的混合会减慢一切,但我不能找到解决方法。我将不胜感激有关如何在这种情况下提高性能的任何想法。也许有比使用更好的方法来绘制文本标签 CATextLayer

0 投票
5 回答
11421 浏览

ios - 如何设置 CATextLayer 文本垂直位置?

我使用以下代码在我的应用程序中创建UILabelCATextLayer

结果是

在此处输入图像描述

红色的是UILabel,绿色的是CALayer. I want to know how to vertical align the text inCALayer , as theUILabel` 显示。