示例1:
let halfPie = Double.pi / 2
var pieCount: Int = 0
let rotationNum = (pieCount % 4) + 1
let angle = halfPie * Double(rotationNum)
UIView.animate(withDuration: 1, animations: { [weak self] in
self?.containerView.transform = CGAffineTransform(rotationAngle: CGFloat(angle))
}) { [weak self] _ in
self?.pieCount += 1
}
示例2:
let halfPie = 1.5707963267949
var pieCount: Int = 1
let angle = halfPie * Double(pieCount)
UIView.animate(withDuration: 1, animations: { [weak self] in
self?.containerView.transform = CGAffineTransform(rotationAngle: CGFloat(angle))
}) { [weak self] _ in
self?.pieCount += 1
}
两者之间的区别在于第二个继续增加,第一个将数字保持在PIE * 2的最大值。是否有任何理由以一种方式对付另一种方式?他们似乎都做同样的事情。 pieCount在全球范围内初始化。
答案 0 :(得分:1)
没有区别。
如果您将动画设置为180°或540°,则动画将是相同的,因为视图将进行最少量的移动以到达正确的位置。
在旁注中,您不应该使用halfPie
来Double.pi/2
进行硬编码