我在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尝试了解决方案。
但我的问题没有解决。
下面是截图:
请帮帮我。
提前致谢
答案 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
。