我有一个UIImage
的UFO,我只是想让它漂浮在随机位置,如游戏小行星中的小行星。我放了一些轮换,暂时在那里生长。如果所有动画都是随机完成的话会很好。即使只是随机动作,我也会非常开心。我如何实现arc4random()?在完成这个简单的任务之后,我想学习如何将arc4random()应用于UIDynamics中的各种行为。提前谢谢。
import UIKit
class ViewController: UIViewController {
@IBOutlet var ufo: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
UIView.animateWithDuration(5.5, delay: 0, options: .Repeat, animations: {
let grow = CGAffineTransformMakeScale(2, 2)
let angle = CGFloat( -30)
let rotate = CGAffineTransformMakeRotation(angle)
self.ufo.transform = CGAffineTransformConcat(grow, rotate)
}, completion: nil)
}
}
答案 0 :(得分:0)
arc4random_uniform(n)将返回一个从0到n的数字。如果你想让它返回一个Int,那么你可以按如下方式进行转换:
var randomNumber = Int(arc4random_uniform(7))
使用此功能生成随机数,然后在动画中使用这些数字。
例如,如果您希望动画具有随机持续时间:
var duration = Double(arc4random_uniform(5)+1)
var x = CGFloat(arc4random_uniform(320))
var y = CGFloat(arc4random_uniform(960))
UIView.animateWithDuration(duration, delay: 0, options: .Repeat, animations: {
let grow = CGAffineTransformMakeScale(2, 2)
let angle = CGFloat( -30)
let rotate = CGAffineTransformMakeRotation(angle)
self.ufo.transform = CGAffineTransformConcat(grow, rotate)
self.ufo.frame = CGRectMake(x,y,self.ufo.frame.size.width, self.ufo.frame.size.height)
}, completion: nil)
我有arc4random_uniform(5)+1的原因是因为函数从0到n,如上所述,所以在这种情况下0到5但是我们不想要一个0持续时间的动画所以我添加了1到它使数字1到6。