问题标签 [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 投票
3 回答
4518 浏览

ios - NSScreen 上的 UIScreen.mainScreen.scale

CATextLayer 清洁有问题。对于 iOS,解决方案是:

但我在可可 NSScreen 上找不到“比例”属性

注意:使用 Object-C 或 Swift 回答是可以的。

0 投票
0 回答
521 浏览

ios - 如何在 CATextLayer 文本上添加边框轮廓描边和填充描边

这是代码,

滑块值是笔划的宽度,t.string 表示文本层字符串。谢谢

0 投票
1 回答
399 浏览

cocoa - 如何将托管 NSView 的图层渲染到文件

有没有办法在不实现每个 CALayer 的–drawInContext:方法(或类似地,每个层的委托方法)的情况下将托管 NSView 的层(如屏幕上显示的那样)渲染为 PDF 或位图文件-(void)drawLayer:inContext:?我只希望 NSView 的内容与它们所显示的内容完全一样,并且使用最少的额外绘图代码。

我读过很多资料,说要渲染为 PDF,你必须-drawInContext:实现当您将它们添加到视图时渲染“正常工作”的图层,例如 CATextLayer 或 CAShapeLayer。必须重写 CATextLayer 的代码来告诉它如何在它显然完全有能力在屏幕上绘制自己时,这似乎是完全多余的。

我错过了什么明显的东西吗?

0 投票
2 回答
615 浏览

xcode - 包装的 iOS CATextLayer 无法按预期工作

我有一个带有多行文本的 CATextLayer。Wrapped 选项设置为 YES。但它不会将文本换行在最后一行。如果我用 \n 和空格添加另一行,则会发生换行(但这会破坏布局)。

这只发生在 iOS >= 8.3

有什么想法可能导致这种情况吗?

0 投票
1 回答
300 浏览

ios - 沿 Arc 定位 CATextLayers

我正在尝试构建一个可能看起来像这样的 Inkscape 模型的自定义控件:

在此处输入图像描述

我正在做一些事情,drawRect()但我需要为一些元素设置动画,所以我决定切换到CALayers 的组合。我一直在使用CGContextRef函数绘制文本,但是在切换到CATextLayer每个字符后,我似乎无法正确转换它们。

我的一般方法是为每个角色创建一个CATextLayer。我我可以使用每一层preferredFrameSize()来获得角色的最终大小。然后我想我会在我的控制layoutSubviews()方法中调整它们的位置和旋转。

“我试过什么?” 我觉得我只是坐在旋转中,蒙着眼睛,投掷飞镖。你的名字,我试过了。

我可以通过以下方式确定每个角色的旋转角度:

我注意到这layoutSubviews()似乎被调用了两次。为什么?我注意到第二次通过时,preferredFrameSize()似乎更薄了。为什么?是不是因为我在设置它affineTransform并且它具有累积效应。我试图最初将图层的位置设置为父框的中心,并将边界设置为preferredFrameSize,希望将其居中。然后应用变换。尽管多次尝试,我得到了奇怪的位置,以及奇怪的剪辑。

所以我只是在寻找一个简单/直截了当的配方,它将 aCATextLayer从视图中心定位在给定的半径/角度。

0 投票
1 回答
976 浏览

cocoa - 具有比例变换的模糊 CATextLayer

我无计可施。我已经尝试了我认为的一切来摆脱CATextLayer模糊无济于事。诚然,有些东西会有所帮助,但是当放大 2 倍时,文本仍然过于模糊,远不及非CATextLayer文本的清晰度。

这是我的情况。我有一个层托管的视图,它可以包含许多子层,包括CATextLayers(在自定义CALayer容器内)。现在,用户可以缩放主内容层(包含所有子层内容),这是通过对内容层应用缩放变换来完成的。

这是我目前正在做的事情。大多数都会有所作为,尽管差别不大。如果我一直放大(这是 2 倍比例因子),我会得到严重模糊的文本。

  • 确保积分坐标 - 工作并产生明显的差异,但在 2 倍比例下仍然过于模糊

  • 关闭CATextLayer容器层上的阴影 - 虽然不是 2 倍规模,但会有所不同

  • 确保文本层的背景颜色完全不透明 - 尽管不是 2 倍比例,但似乎有所不同

  • contentsScale属性设置为所有图层的窗口支持比例因子 - 尽管不是 2 倍比例,但似乎有所不同

  • 覆盖-drawInContext:此自定义CATextLayer子类以平滑、抗锯齿和子像素量化一切 - 字体渲染更真实,但在 2 倍比例下仍然模糊

代码片段:

我错过了什么?

0 投票
0 回答
37 浏览

objective-c - 如何在 CATextlayer 上重写?

我正在使用 CATextLayer 进行自定义日历设计。我正在使用 CAlayer 来绘制每个月的数字。但是当我按下下一个按钮移动到下个月时,日期是重叠的。我尝试删除子层但没有用。请帮帮我。。

初始日历

但是当我搬到十二月时。日期重叠

在此处输入图像描述

我使用的代码是:

0 投票
1 回答
164 浏览

swift - 为什么 CATextlayer 使用那么多内存

  • 我有一个大小为 3000 * 3000 的 CATextLayer,里面有一个大文本。
  • 文字是说“你好”
  • 我将此 CATextlayer 添加到我的 Superlayer。
  • 我已将 shouldrasterize 设置为 false。

当使用翻译移动超层时,我观察到巨大的内存使用情况,直到应用程序崩溃。

为什么要占用这么多内存?我怎样才能避免这种情况?

我假设,内存中会存储一个位图?但为什么 ?

我的示例是一个极端案例,这并不是我真正高效的应用程序,所以请不要问你为什么要这样做。它只是试图理解发生了什么的极端案例。

0 投票
1 回答
3347 浏览

objective-c - 如何为 CATextLayer() 设置系统字体?

对于UILabel,我可以将系统字体设置为:

对于CATextLayer,有没有类似的方法来设置系统字体而不是直接给出字体名称?

0 投票
1 回答
3819 浏览

objective-c - 用 CATextLayer 怎么做才能在 UILabel 中显示与系统字体相同的字体?

当我使用 时UILabel,我将系统字体设置为:

现在我尝试使用CATextLayer并在网上搜索,发现iOS 9的系统字体是San Francisco,字体名称是.SFUIText-Medium,所以我尝试将字体名称设置为:

但是,设备屏幕上显示的字体与上面解释的UILabel&不同。CATextLayer在这里使用的正确字体名称是什么,CATextLayer以便我可以显示与 ? 完全相同的字体UILabel