Swift中的Block语法

我正在尝试从Objective-C重写为Swift,我无法弄清楚语法或无法理解文档

这是我编写的Objective-C的简化示例:

[UIView animateWithDuration:10.0 animations:^{self.navigationController.toolbar.frame = CGRectMake(0,10,0,10);}];

我该如何在Swift中编写代码?

这是模板自动完成功能提供的:

UIView.animateWithDuration(duration: NSTimeInterval, animations: (() -> Void))

回答:

由于预期的参数类型和animations参数的返回类型是已知的,因此编译器可以毫无问题地推断出它们。这应该可以工作(尽管目前我没有可用的游乐场:

UIView.animateWithDuration(10.0, animations: {

self.navigationController.toolbar.frame = CGRect(x:0.0, y:10.0, width:10.0, height:0.0)

})

有关闭包的更多信息,请参见swift文档中的章节

注意CGRect()-

开发人员文档显示CGRect()正在快速代码中使用。也许需要进口?

更新评论:您也可以使用结尾闭包,如下所示:

UIView.animateWithDuration(10.0) {

self.navigationController.toolbar.frame = CGRect(x:0.0, y:10.0, width:10.0, height:0.0)

}

以上是 Swift中的Block语法 的全部内容, 来源链接: utcz.com/qa/436115.html

回到顶部