我想每次(90°)以相同的度数多次旋转UIButton。我遇到的问题是它执行一次90°旋转,然后下次按下按钮时它再次从0开始并转到相同的前一个值。我的代码;
let rotateView = CABasicAnimation()
rotateView.toValue = 90 * (M_PI) / 180
rotateView.duration = 0
rotateView.repeatCount = 0
rotateView.removedOnCompletion = false
rotateView.fillMode = kCAFillModeForwards
rotateView.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)
smile2.layer.addAnimation(rotateView, forKey: "transform.rotation.z")
我认为问题可能是我无法指定fromValue
因为我使用随机数开头 - 这是代码;
let value: NSArray = [90, 180, 270, 360]
let range: UInt32 = UInt32(value.count)
let randomNumber = Double(arc4random_uniform(range))
为了使其更清晰:按钮的fromValue
是let value
中的随机数。我想在每次按下按钮时使按钮与该随机数旋转90°。
答案 0 :(得分:0)
问题部分在于以下几点:
transform
这种事情只是一个拐杖,并表明你并不真正了解动画是如何运作的。你正在抛弃一个至关重要的步骤,并用这些线来弥补失败。关键的一步是您必须将视图的 public class Book {
@NotEmpty(message="please fill author")
pirvate String author;
@NotEmpty("message="please fill title")
private String title;
@NotNull(message="you get my drift ;)")
private Map<K,V> someMap;
public Book(String author,String title, Map map){
this.author = author;
//blah blah no need for the setters...
}
// blah blah other getters and setters
}
设置为与动画相同的值。一旦你这样做,这些行将是不必要的,并且连续的动画将正常工作。
另请注意,如果使用添加动画,您的生活会更加简单,因为您可以随时随地旋转90度。