gpt4 book ai didi

ios - 如何在动画过程中动态访问半径? (在 CGAffineTransform 期间可能)

转载 作者:行者123 更新时间:2023-11-29 01:42:58 25 4
gpt4 key购买 nike

我使用两个简单的 CGAffineTransforms 来放大和缩小圆形 UIView,但我希望能够在动画发生时动态访问 TouchBegan() 中的半径,并检查它是否等于某个值当时的值(value)。

困难在于我需要在动画仍在发生时检查半径。我并不完全相信 CGAffineTransforms 方法,所以如果这意味着能够访问半径,我非常乐意以另一种方式对圆进行动画处理。谢谢你!

我不知道该怎么做。下面是我的代码(欢迎提示!):

func grow() {

UIView.animateWithDuration(2.3, delay: 0.0,
options: UIViewAnimationOptions.CurveEaseIn,
animations: {
self.circle2.transform = CGAffineTransformMakeScale(1.5, 1.5)
},
completion: ({ finished in
if (finished) {
self.shrink()
}
}))
}

func shrink() {

UIView.animateWithDuration(2.3, delay: 0.0,
options: UIViewAnimationOptions.CurveEaseInOut,
animations: {
self.circle2.transform = CGAffineTransformMakeScale(0.5, 0.5)
},
completion: ({ finished in
if (finished) {
self.grow()
}
}))
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/*
if radius == certain value
{
//do something
}
*/
}

最佳答案

首先,我建议使用普通的 CABasicAnimation 或 CAKeyframeAnimation 来制作此动画,因为您可以使用 anim.repeatCount = .infinity 而不是来回调用彼此的完成处理程序。

动画的当前状态可以通过 circle2.layer.presentationLayer 访问。如前所述 in this question , 你可以使用它的 frame 来考虑转换。

关于ios - 如何在动画过程中动态访问半径? (在 CGAffineTransform 期间可能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32217785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com