- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是开发 iOS 游戏的新程序员,我想编写一条动画线来引导用户将对象从 A 点拖到 B 点。所以我希望这条线从(长度 = 0)开始点 A 并将自身动画化(比如长度 = 100 像素)到点 B。
我正在使用 SKShapeNode,目前要对其进行“动画处理”,我实际上是通过“更新”方法在每一帧中重新创建线条,并使用一个依赖于 currentTime 的变量来使线条变得稍长一些,直到它到达使用以下代码所需的长度(注意该行是虚线):
但是,我遇到了几个性能问题,当我修复这些问题时,会引发更多问题。我需要避免让对象的长度成为从“-(void)update:(CFTimeInterval)currentTime”开始耗时的函数。相反,我想要一种可以调用的方法来为这条线设置动画——我正在阅读并觉得这可能可以通过 CoreAnimations 实现(比如这里的 CABasicAnimation Ios drawing lines animated ),但我不确定究竟如何实现这一点。任何正确方向的帮助或指导将不胜感激 - 谢谢。如果我可以提供任何其他信息或任何解释,请告诉我!
-(void)drawLine : (CGFloat)ratio
{
CGPoint StartPoint = CGPointMake(0,0)
CGPoint FinishPoint = CGPointMake(100,50);
CGPoint AnimatedPoint = CGPointMake(FinishPoint.x*ratio +StartPoint.x*(1-ratio)+1, FinishPoint.y*ratio+StartPoint.y*(1-ratio)+1);
CGFloat pattern[2];
pattern[0] = self.size.height/30; //length of first pattern
pattern[1] = self.size.height/30; //length of second pattern
UIBezierPath *bezierPath=[UIBezierPath bezierPath];
[bezierPath moveToPoint:StartPoint];
[bezierPath addLineToPoint:AnimatedPoint];
CGPathRef dashed =
CGPathCreateCopyByDashingPath([bezierPath CGPath],
NULL,
0,
pattern,
2);
lineDrawn.path = dashed; //this is of type SKShapeNode
CGPathRelease(dashed);
}
最佳答案
是的,您可以(并且可能应该)使用 Core Animation 而不是尝试循环绘制线条。
你要做的是创建一个 CAShapeLayer。您将从 UIBezierPath 安装 CGPath 作为形状层中的路径,并将形状层添加为 View 层次结构中某个 View 层的子层。
然后,您将创建一个 CABasicAnimation,它将使形状图层的 strokeEnd 属性从 0(结束 = 开始:未绘制线条)到 1.0(从头到尾完全绘制线条)进行动画处理。
这是一种很常见的技术。您应该能够在“CAShapeLayer CABasicAnimation strokeEnd”上进行谷歌搜索,并找到或多或少完成您需要做的事情的示例。如果找不到,请告诉我,我会为您指明正确的方向。
关于ios - 如何在持续时间内为一条线设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29190783/
如何迭代(一行)分割函数给我的每个类? 我试过这个: 编辑(抱歉) $("p").attr("class").split(' ').each (function (i,n){alert(n)}
我有一条垂直线和一条水平线,当我动态调整我的 Canvas 父级时,我想调整它们的大小。 (地标) 我希望水平线始终距 Canvas 的左右边界 25 处,距底部边界 13 处。 垂直线也是如此,距上
我有一个 y 变量,我试图在图形的顶部和底部针对两个相关的 x 轴绘制它(例如 y="立方体中的事物数",x1="立方体的边长", x2="立方体的体积")。我在 numpy 数组中有 y、x1、x2
我想画一条简单的水平线,并在这条线 flex 的地方制作动画。我有这个动画的视频。你能给我一些建议如何开始以及我必须使用哪个 js/css 吗? 都是关于矩形底部的线: http://www.stop
我是一名优秀的程序员,十分优秀!