问题标签 [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.
iphone - CAShaperLayer -renderInContext 不起作用?
我可以使用以下代码从 Core Animation 层创建 UIImage:
此代码在我的 CALayer 派生类中。我遇到的问题是我有两个 CAShapeLayers,它们是我的图层的子图层,它们不会渲染到结果图像。如果我将标准 CALayers 添加为子项,它们会得到很好的渲染。苹果文档说:
将接收器及其子层渲染到指定的上下文中。
它还说它从 iPhone OS 2.0 开始就可用。想知道我是否遗漏了什么,或者我是否应该提交雷达。
有什么想法可以阻止孩子 CAShapeLayers 被图像吸引吗?
谢谢。
iphone - CAShapeLayer 减缓界面旋转
我正在尝试将一些自定义绘图代码从视图移动到 aCAShapeLayer
中,然后将其作为子层添加到原始视图的CALayer
. 这也很有效,但是当旋转设备时,动画开始出现断断续续的情况,例如,您只看到原始方向的帧,然后是最终方向,中间最多有一帧 - 一点也不流畅。相应的滑入和滑出动画UIViewController
也有点生涩(但不是那么多)。
它中的所有CAShapeLayer
具有path
是一CGPathAddRect
,它被设置为opaque
,它的opacity
是1.0f
并且fillColor
被设置为不透明的蓝色。
然而,当直接在视图drawRect
方法中绘制路径时,动画是平滑的。所以我想这与CAShapeLayer
旋转期间的动画有关。
你能告诉我如何摆脱那些急躁或只是CAShapeLayer
在动画时隐藏?回到CGPath
直接 draw s 对我来说不是一个选择,因为我依赖于CAShapeLayer
为其路径设置动画的能力(在我尝试旋转视图时它没有动画)。
/update:当旋转UIViewController
的视图包含一个具有子类的视图CAGradientLayer
时也会发生这种情况layerClass
(例如,具有渐变层作为背景的视图)。
干杯
法师先生
iphone - CAShapeLayer 路径在动画后消失 - 需要它留在同一个地方
感谢 StackOverflow 上的一些帮助,我目前正在为 CAShapeLayer 中的路径设置动画,以制作一个三角形,该三角形从移动的精灵指向屏幕上的另一个移动点。
动画完成后,三角形会从屏幕上消失。我使用的持续时间非常短,因为每个精灵每 0.1 秒就会触发一次此代码。结果是红色三角形正确跟踪,但它快速闪烁或完全不存在。当我增加持续时间时,我可以看到三角形停留的时间更长。
我该怎么做才能让三角形停留在屏幕上,它的当前路径(tovalue
)直到再次调用该方法以从该点动画到下一个点?我尝试设置removedOnCompletion 和removeAllAnimations,但无济于事。
下面的代码:
iphone - 如何让 CAShapeLayer 在 iPhone OS 3.0 中投下阴影?
我正在使用带有路径的 CAShapeLayer。现在我希望它投射出大约 10 个单位厚度的平滑阴影。
第一:是的,我可以只创建 11 个 CAShapeLayer 对象,并且每次将路径的轮廓增加 1 个单位,并在每次迭代时使用不同的颜色和更多的 alpha。但是这样我就炸毁了我的内存占用,因为它是屏幕大小的一半,这意味着内存中有 11 倍的半屏幕大小的位图。
因此,从 iPhone OS 3.2 开始,我可能可以在 CALayer 上使用那些漂亮的阴影属性。但我想坚持使用 OS 3.0。那么除了上面那个讨厌的选项,我还有什么选择呢?
iphone - CGImage 可以添加到 CAShapeLayer 的内容属性中吗?
我有一个带有 layerClass 覆盖的自定义视图,例如:
我希望能够将 CGImage 添加到 contents 属性,如下所示:
我是否需要设置其他属性,或者其他方式来获取形状层以渲染图像内容以进行动画处理?
iphone - 最大 CAShapeLayer 大小?
我正在尝试在图像上绘制一个半透明的形状。
我有一个UIView
将其图层内容设置为图像的图层,其中一个CAShapeLayer
子图层的路径设置为形状。UIViews
在parent中有一些这样的UIView
,它是 a 的 zoom child UIScrollView
。
在 iPhone 上一切都很好,但是当我在 iPad 上放大时,它UIViews
变得非常大,然后CAShapeLayers
消失了。图像显示正常。我猜这个问题是尺寸问题,所以我把它分成CAShapeLayers
两部分,这样就有了左边和右边。现在,除非用户放大得很远,否则它们都会显示出来,例如在它们反弹之前“松开”超出我的最大缩放。
分开我的CAShapeLayers
进一步是可行的,但有点繁琐。所以,我有几个问题:
- 是否有最大尺寸限制
CAShapeLayers
?为什么它不适用于图层的图像内容? - 为什么
CAShapeLayers
在缩放期间重新绘制在 a 内UIScrollView
?整个缩放视图(UIScrollView's
直接子视图)不应该在一英寸内光栅化吗?我怎样才能做到这一点?
path - 在 Photoshop/Illustrator 中绘制路径,在 iOS 中使用
我正在寻找一种比以编程方式绘制更方便的方式来绘制路径。有什么方法可以在 Photoshop(或 Illustrator)中绘制路径并获取 iPhone 的路径以在 CAKeyframeAnimation 中使用?例如通过导出点数据,或通过导入.ai 文件?
iphone - 对 CAShapeLayer 应用渐变
有没有人有将渐变应用于 CAShapeLayer 的经验?CAShapeLayer 是一个很棒的图层类,但它似乎只支持纯色填充,而我希望它有一个渐变填充(实际上是一个动画渐变)。
与 CAShapeLayer 相关的一切(阴影、形状、笔触颜色、可动画的形状路径)都很棒。
我尝试将 CAGradientLayer 放置在 CAShapeLayer 中,或者确实将 CAShapeLayer 设置为 GradientLayer 的蒙版并将两者都添加到容器层,但这些都没有正确的结果。
我应该继承 CAShapeLayer,还是有更好的方法?
谢谢。
uikit - 从多个 CGpath 构建 CAShapeLayer
我有一个 CAShapeLayer,它的形状来自路径。这将创建一个可以操作的图层对象,例如移动和旋转。我的问题是我需要图层对象由多个路径组成。例如想象美国地图;有主要的形状,还有阿拉斯加。两种形状都没有连接,但它们是同一个实体,我需要它们成为单个 CAShapeLayer 中的单个对象,这样当我移动图层时,US 和 Alaska 都会一起移动。
iphone - CAShapeLayer hitTest touch
我不明白为什么 CAShapeLayer 不响应 hitTest
这个函数总是去 // 触摸在外面
如何检测 CAShapeLayer 上的触摸?