动画的问题与持续时间在swift

时间:2014-09-26 14:36:48

标签: ios swift

我在animateWithDuration中使用块时遇到错误:动画:完成:方法

下面是我的代码:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    var cell=tableView.cellForRowAtIndexPath(indexPath)
    var backGrndView:UIView?=cell?.contentView.viewWithTag(2) as UIView?
    UIView.animateWithDuration(0.2,
        animations: {
            backGrndView?.backgroundColor=UIColor.redColor()
        },
        completion: { finished in
            backGrndView?.backgroundColor=UIColor.redColor()
    })
}

我在link尝试了解决方案。

但我的问题没有解决。

下面是截图:

enter image description here

请帮帮我。

提前致谢

1 个答案:

答案 0 :(得分:2)

似乎问题是如果闭包中只有一个语句,swift auto会返回。您可以通过添加显式返回来解决此问题:

UIView.animateWithDuration(0.2,
    animations: {
        backGrndView?.backgroundColor = UIColor.redColor()
        return
    },
    completion: { finished in
        backGrndView?.backgroundColor=UIColor.redColor()
        return
})

本声明:

 backGrndView?.backgroundColor = UIColor.redColor()

返回与()?相同的Void?,但闭包返回类型为Void