我正在尝试从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()正在快速代码中使用。也许需要进口?
CGRect()
更新评论:您也可以使用结尾闭包,如下所示:
UIView.animateWithDuration(10.0) { self.navigationController.toolbar.frame = CGRect(x:0.0, y:10.0, width:10.0, height:0.0) }