问题标签 [careplicatorlayer]

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 投票
1 回答
1219 浏览

ios - 使用 CAReplicatorLayer 的下雪效果

我有一个雪花图像,我想在屏幕上复制并创建降雪。我们可以将 instanceCount 设置为 X 以创建大量雪花,我们可以设置 instanceTransform 以使每个实例与下一个实例保持一定距离。

但是我不清楚如何让它们掉下来。有谁知道这个类是否打算用于这样的事情,如果是这样,应该如何正确完成?

0 投票
1 回答
578 浏览

iphone - CAReplicatorLayer 随机位置

如何在 CAReplicatorLayer 层中引入随机性?例如,随机化每个粒子的位置。

最好的,万斯

0 投票
1 回答
486 浏览

iphone - 如何使用带有一些随机性的 CAReplicatorLayer 创建火花效果?

是否可以使用具有一定随机性的 CAReplicatorLayer 粒子系统创建令人信服的火花效果?

如果是这样,怎么做?

0 投票
1 回答
2947 浏览

iphone - 使用 CAReplicatorLayer

我一直在尝试使用 CAReplicatorlayer、CATextLayer 和非常基本的动画创建一个很酷的文本效果。我试图让字母看起来像是从屏幕顶部掉下来的,然后是很酷的复制器,这些复制器将变得越来越不可见。我已经成功地做到了这一点,但并不完全。

到目前为止,这就是我所拥有的:

我有两个问题:

  1. 复制的图层从终点开始。
  2. 当主图层到达他的最后一个动画点时,动画停止并且复制的图层无法完成它们的动画。
0 投票
1 回答
493 浏览

cocoa-touch - 实现“放大镜”类型的 UI 控件

我正在实现一种眼镜/缩放类型的控件,可以让您看到放大的其他 UIView 的一部分。

实现了一个解决方案,该解决方案通过截取主 UIView 的屏幕截图,然后在放大镜中仅显示该屏幕截图的一部分。

但是,这种实现效率非常低,因为我四处移动触摸,在此更改之前和之后都会出现明显的减速。

寻找其他方法来做到这一点。有人有什么建议吗?

我现在正在研究两件事:
1. CAReplicatorLayer:是否可以使用复制器层来做到这一点?
2. 部分截图:如何截取另一个 UIView/layer 的部分截图?

有人对如何实施有任何其他建议吗?

问候!

0 投票
1 回答
1898 浏览

ios - CAReplicatorLayer 背后的魔力是什么?

我发现 CAReplicatorLayer 的有趣之处:

  • 它能够非常有效地使用不同的转换多次显示 CALayer(如何?)
  • 似乎它以某种方式重用了复制层的“后备存储”,甚至对其应用了一些颜色(如何?)

我想获得源代码或了解 CAReplicatorLayer 背后的魔力。我想要一个类似于 CAReplicatorLayer 的 CALayer 类,但有更多的控制权。我想为每个复制实例单独控制转换

所以以完全不同的方式问:是否有可能获得 CALayer 的“后备存储”并显示它,但是我想要多少次?

(“后备存储”是指 CALayer/UIView 的渲染纹理。我对 CoreAnimation/QuartzCore 的幕后发生的事情知之甚少)。


为什么我不考虑诸如将 CALayer 渲染到 UIImage 之类的替代方法:

  • 表现
  • 内容是动态的/在过渡下经常变化
  • 以另一种方式做到这一点将是非常棒的!
0 投票
1 回答
121 浏览

3d - CATransformLayer - CAReplicatorLayer - 真正的 3D 复制

是否可以使用 CAReplicatorLayer 获得真正的 3D 复制?

现在,我在 x、y 和 z 轴上设置了 30 度的复制角度和 10 次复制。

我的 CAReplicatorLayer 是 CATransformLayer 的子对象,我旋转它以从顶部(等距)获得视图。不幸的是,结果是我看到一个平面 CAReplicatorLayer 在我的 3D 世界中“漂浮”,它将它的 3D 内容渲染成一个 2D 平面。

有可能让它成为真正的3D吗?

0 投票
1 回答
397 浏览

ios - 使用 kCAMediaTimingFunctionEaseIn 有问题吗?

我正在使用CALayer,CAReplicatorLayerCABasicAnimation为条形图设置动画。条形图由“段”组成,我将其渲染为带有CALayer. 然后我将它们作为子层添加到CAReplicatorLayer循环中。最后,我为每个小矩形添加了一个动画,将矩形放到图表中的位置。

这是动画的最终状态:

正确的动画最终状态

这是动画中间的样子:

动画状态

这是实现它的代码:

最后,这是问题所在。如果您指定 no timingFunctionLinear函数或EaseIn函数,则动画不会完全完成。就像块没有完全到位。看起来他们已经接近完成,但还没有完全完成。只掉一两帧。换掉定时功能分配-viewDidAppear:,你会得到这个奇怪的东西:

在此处输入图像描述

来吧,试试看。我什至尝试使用与函数完全相同的控制点(链接EaseIn)指定函数:

出于某种原因EaseOutDefault计时功能可以正常工作,但在视觉上,轻松的风格功能似乎需要更长的时间才能完成,也许是因为插值曲线的长度?

我尝试了很多方法来缩小问题范围:

  1. 不循环这些结构,并且仅使用具有相同动画的 1 层和 1 复制器层。我的意思是,只为一列设置动画。没运气。循环不是问题。
  2. 将创建、添加子层和添加动画的代码全部放在-viewDidAppear. 如果动画是在视图生命周期的早期或晚期添加的,似乎并没有什么不同。
  3. 为我的结构使用属性。没有不同。
  4. 不为我的结构使用属性。再次,没有区别。
  5. 添加了动画完成的回调以删除动画,从而使列保持正确的“最终”状态。这不是很好,但值得一试。
  6. 这个问题在 iOS 6 和 7 中都存在。

我真的很想使用EaseIn计时功能,因为它是放置到位的最佳动画。我也想使用,CAReplicatorLayer因为它正是我想做的。

那么EaseIn我使用的计时功能有什么问题呢?这是一个错误吗?

0 投票
0 回答
368 浏览

ios - 屏蔽动画 CALayer 以在 CAReplicatorLayer 中使用以创建万花筒效果

我正在尝试在 iOS 中创建一个万花筒(我知道有一个CIKaleidoscope过滤器,但它没有给我我正在寻找的那种效果,所以我希望自己推出)。我已经设法使用 a 获得静止图像的效果,CALayer用三角形掩盖它,CAShapeLayer然后用 复制它CAReplicatorLayer。我现在正在尝试为原始图像设置动画CALayer以使其具有一些运动。我正在创建CALayer和动画使用以下代码:

然后我创建一个三角形用于遮罩:

当蒙版随动画移动时,我无法对动画CALayer进行蒙版,而且我没有得到图案在三角形中移动的效果。

将蒙版添加到视图的图层具有我所追求的图案在三角形中穿过蒙版的效果:

但我无法使用CAReplicatorLayer. 有没有一种方法可以遮罩CALayer但保持遮罩相对于视图的框架而不是动画层的框架?或者有什么方法可以捕获视图的动画图像,以便我可以在其中使用它CAReplicatorLayer

0 投票
2 回答
425 浏览

objective-c - CAReplicatorLayer 的 instanceDelay 被忽略

我正在尝试使用以下代码创建多个“卡片”以对其进行动画处理:

但它们同时出现,即使instanceDelay设置为10. 我在方法中有这段代码viewDidAppear