现在,我要做的是让锚点四处移动,并保持连接的连接.我正在使用下面显示的代码更新其框架和路径属性,利用连接层的-setFrame:方法:
– (voID)setFrame:(CGRect)frame {
CGSize size = frame.size;CGPoint startPoint = CGPointZero;if (size.height < 0.0) startPoint.y -= size.height;CGPathref oldpath = self.path;CGMutablePathref path = CGPathCreateMutable();CGPathMovetoPoint(path,NulL,startPoint.x,startPoint.y);CGPathAddlinetoPoint(path,startPoint.x + size.wIDth,startPoint.y + size.height);CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"path"];animation.duration = [CATransaction animationDuration];animation.timingFunction = [CATransaction animationTimingFunction];animation.fromValue = (ID)oldpath;animation.tovalue = (ID)path;[self addAnimation:animation forKey:@"pathAnimation"];self.path = path;CGPathRelease(path);[super setFrame:frame];
}
现在,这种工作,但问题是框架(或位置边界)动画不与路径动画同步运行,导致一些紧张的影响,连接的远端瞬间分离(和一些其他小问题,可能是由同一个核心问题引起的).
我一直在努力解决这个问题,但只是为了取得成功.有一次,我将连接的帧设置为等于封闭超层的帧,它确实具有所需的效果(因为现在帧不再需要动画).但是,我担心这个解决方案在具有多个连接的环境中的性能 – 即.多个非不透明,大尺寸重叠层似乎不好?
有人会有更好,更优雅的解决方案吗?谢谢!
解决方法 由于您只是实际拉伸(缩放)并旋转连接层,您是否考虑过对其应用转换而不是手动修改框架?您应该能够使用基于锚定层的位置的一些基本三角函数来计算旋转角度和缩放因子.
总结以上是内存溢出为你收集整理的ios – 使用移动框架动画CAShapeLayer全部内容,希望文章能够帮你解决ios – 使用移动框架动画CAShapeLayer所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)