我按照此处列出的代码:Dropdown list in swift
即:
func animateDropDownToFrame(frame: CGRect, completion:() -> Void) {
if (!self.isAnimating) {
self.isAnimating = true
UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseInOut, animations: { () -> Void in
self.dropDownView.frame = frame
}, completion: {(completed: Bool) -> Void in
self.isAnimating = false
if (completed) {
completion()
}
}
)
}
}
并在完成时继续获取错误:
预期','分离器
类型名称后的预期成员名称或构造函数调用
请注意,由于我认为括号位于错误的位置,因此我稍微更改了完成行,但并不认为这是问题所在。
可能是什么问题(以及我自己调试此问题的最佳方法是什么)?
答案 0 :(得分:0)
编写的语法非常难以理解。 Swift编译器可能还有一个错误,它无法解析您编写的内容。 Swift允许嵌套函数,所以你可以这样做:
func animateDropDownToFrame(frame: CGRect, completion:() -> Void) {
func animate() {
self.dropDownView.frame = frame
}
func animationDidComplete(completed : Bool) {
self.isAnimating = false
if (completed) {
completion()
}
}
if (!self.isAnimating) {
self.isAnimating = true
UIView.animateWithDuration(0.5, delay: 0.0, options: .CurveEaseInOut, animations: animate, completion: animationDidComplete)
}
}
(我现在可以访问Xcode,因此可能存在一些错别字。根据需要更正)