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

0 投票
3 回答
3450 浏览

iphone - CAShaperLayer -renderInContext 不起作用?

我可以使用以下代码从 Core Animation 层创建 UIImage:

此代码在我的 CALayer 派生类中。我遇到的问题是我有两个 CAShapeLayers,它们是我的图层的子图层,它们不会渲染到结果图像。如果我将标准 CALayers 添加为子项,它们会得到很好的渲染。苹果文档说:

将接收器及其子层渲染到指定的上下文中。

它还说它从 iPhone OS 2.0 开始就可用。想知道我是否遗漏了什么,或者我是否应该提交雷达。

有什么想法可以阻止孩子 CAShapeLayers 被图像吸引吗?

谢谢。

0 投票
2 回答
1273 浏览

iphone - CAShapeLayer 减缓界面旋转

我正在尝试将一些自定义绘图代码从视图移动到 aCAShapeLayer中,然后将其作为子层添加到原始视图的CALayer. 这也很有效,但是当旋转设备时,动画开始出现断断续续的情况,例如,您只看到原始方向的帧,然后是最终方向,中间最多有一帧 - 一点也不流畅。相应的滑入和滑出动画UIViewController也有点生涩(但不是那么多)。

它中的所有CAShapeLayer具有path是一CGPathAddRect,它被设置为opaque,它的opacity1.0f并且fillColor被设置为不透明的蓝色。

然而,当直接在视图drawRect方法中绘制路径时,动画平滑的。所以我想这与CAShapeLayer旋转期间的动画有关。

你能告诉我如何摆脱那些急躁或只是CAShapeLayer在动画时隐藏?回到CGPath直接 draw s 对我来说不是一个选择,因为我依赖于CAShapeLayer为其路径设置动画的能力(在我尝试旋转视图时它没有动画)。

/update:当旋转UIViewController的视图包含一个具有子类的视图CAGradientLayer时也会发生这种情况layerClass(例如,具有渐变层作为背景的视图)。

干杯

法师先生

0 投票
1 回答
2713 浏览

iphone - CAShapeLayer 路径在动画后消失 - 需要它留在同一个地方

感谢 StackOverflow 上的一些帮助,我目前正在为 CAShapeLayer 中的路径设置动画,以制作一个三角形,该三角形从移动的精灵指向屏幕上的另一个移动点。

动画完成后,三角形会从屏幕上消失。我使用的持续时间非常短,因为每个精灵每 0.1 秒就会触发一次此代码。结果是红色三角形正确跟踪,但它快速闪烁或完全不存在。当我增加持续时间时,我可以看到三角形停留的时间更长。

我该怎么做才能让三角形停留在屏幕上,它的当前路径(tovalue)直到再次调用该方法以从该点动画到下一个点?我尝试设置removedOnCompletion 和removeAllAnimations,但无济于事。

下面的代码:

0 投票
1 回答
1216 浏览

iphone - 如何让 CAShapeLayer 在 iPhone OS 3.0 中投下阴影?

我正在使用带有路径的 CAShapeLayer。现在我希望它投射出大约 10 个单位厚度的平滑阴影。

第一:是的,我可以只创建 11 个 CAShapeLayer 对象,并且每次将路径的轮廓增加 1 个单位,并在每次迭代时使用不同的颜色和更多的 alpha。但是这样我就炸毁了我的内存占用,因为它是屏幕大小的一半,这意味着内存中有 11 倍的半屏幕大小的位图。

因此,从 iPhone OS 3.2 开始,我可能可以在 CALayer 上使用那些漂亮的阴影属性。但我想坚持使用 OS 3.0。那么除了上面那个讨厌的选项,我还有什么选择呢?

0 投票
1 回答
1457 浏览

iphone - CGImage 可以添加到 CAShapeLayer 的内容属性中吗?

我有一个带有 layerClass 覆盖的自定义视图,例如:

我希望能够将 CGImage 添加到 contents 属性,如下所示:

我是否需要设置其他属性,或者其他方式来获取形状层以渲染图像内容以进行动画处理?

0 投票
1 回答
841 浏览

iphone - 最大 CAShapeLayer 大小?

我正在尝试在图像上绘制一个半透明的形状。

我有一个UIView将其图层内容设置为图像的图层,其中一个CAShapeLayer子图层的路径设置为形状。UIViews在parent中有一些这样的UIView,它是 a 的 zoom child UIScrollView

在 iPhone 上一切都很好,但是当我在 iPad 上放大时,它UIViews变得非常大,然后CAShapeLayers消失了。图像显示正常。我猜这个问题是尺寸问题,所以我把它分成CAShapeLayers两部分,这样就有了左边和右边。现在,除非用户放大得很远,否则它们都会显示出来,例如在它们反弹之前“松开”超出我的最大缩放。

分开我的CAShapeLayers进一步是可行的,但有点繁琐。所以,我有几个问题:

  1. 是否有最大尺寸限制CAShapeLayers?为什么它不适用于图层的图像内容?
  2. 为什么CAShapeLayers在缩放期间重新绘制在 a 内UIScrollView?整个缩放视图(UIScrollView's直接子视图)不应该在一英寸内光栅化吗?我怎样才能做到这一点?
0 投票
2 回答
1988 浏览

path - 在 Photoshop/Illustrator 中绘制路径,在 iOS 中使用

我正在寻找一种比以编程方式绘制更方便的方式来绘制路径。有什么方法可以在 Photoshop(或 Illustrator)中绘制路径并获取 iPhone 的路径以在 CAKeyframeAnimation 中使用?例如通过导出点数据,或通过导入.ai 文件?

0 投票
3 回答
23879 浏览

iphone - 对 CAShapeLayer 应用渐变

有没有人有将渐变应用于 CAShapeLayer 的经验?CAShapeLayer 是一个很棒的图层类,但它似乎只支持纯色填充,而我希望它有一个渐变填充(实际上是一个动画渐变)。

与 CAShapeLayer 相关的一切(阴影、形状、笔触颜色、可动画的形状路径)都很棒。

我尝试将 CAGradientLayer 放置在 CAShapeLayer 中,或者确实将 CAShapeLayer 设置为 GradientLayer 的蒙版并将两者都添加到容器层,但这些都没有正确的结果。

我应该继承 CAShapeLayer,还是有更好的方法?

谢谢。

0 投票
2 回答
2678 浏览

uikit - 从多个 CGpath 构建 CAShapeLayer

我有一个 CAShapeLayer,它的形状来自路径。这将创建一个可以操作的图层对象,例如移动和旋转。我的问题是我需要图层对象由多个路径组成。例如想象美国地图;有主要的形状,还有阿拉斯加。两种形状都没有连接,但它们是同一个实体,我需要它们成为单个 CAShapeLayer 中的单个对象,这样当我移动图层时,US 和 Alaska 都会一起移动。

0 投票
2 回答
2471 浏览

iphone - CAShapeLayer hitTest touch

我不明白为什么 CAShapeLayer 不响应 hitTest

这个函数总是去 // 触摸在外面

如何检测 CAShapeLayer 上的触摸?