斯威夫特:找不到“超载”。 '接受提供的参数

时间:2014-06-11 21:58:39

标签: animation uiview double swift

所以我需要的是一个连续旋转的图像。问题在于 ///     UIView.animateWithDuration()(0.01,动画:{///

它说:找不到'animateWithDuration'接受提供的参数

class ViewController: UIViewController {

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let schedule = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: Selector("rotate"), userInfo: nil, repeats: true)
    schedule.fire()

    func rotate() {
        angle = angle + 1

        UIView.animateWithDuration() (0.01, animations: { 
            self.imageView.transform = CGAffineTransformMakeRotation( ((self.angle) / 180.0 * M_PI));
            })
    }
}

@IBOutlet var imageView : UIImageView

var angle = 0

提前致谢。

1 个答案:

答案 0 :(得分:2)

正如@Bryan Chen指出的那样,你在方法调用中有一个额外的()。但是,这不是你唯一的问题。你的angle变量是一个Int,当它被认为是Double时会导致这个错误。将变量声明更改为Double

var angle = 0.0

并在整个过程中使用双打,比如修改变量时。

angle = angle + 1.0

然后这将毫无错误地工作。

UIView.animateWithDuration(0.01, animations: {
    self.imageView.transform = CGAffineTransformMakeRotation( ((self.angle) / 180.0 * M_PI));
})