Xcode 6 Beta 5 中的 UIView.animateWithDuration 更改

Posted

技术标签:

【中文标题】Xcode 6 Beta 5 中的 UIView.animateWithDuration 更改【英文标题】:UIView.animateWithDuration change in Xcode 6 Beta 5 【发布时间】:2014-08-06 00:38:35 【问题描述】:

我正在尝试为 UITableView 的尺寸变化制作动画。以下代码在 beta 4 中有效:

     UIView.animateWithDuration(0.1, animations: 
                tableView.frame = CGRectMake(tableView.frame.origin.x, 0 - self.calcTopOffsetToCell(indexPath), tableView.frame.size.width, tableView.frame.size.height + 190)
            , completion:  (finished: Bool) in
                self.selectedIndex = indexPath
                cell.amountTextfield.becomeFirstResponder()
            )

在 beta 5 中,我收到错误“调用中的参数 'delay' 缺少参数”

如果我改变函数来指定延迟:

UIView.animateWithDuration(0.5, delay: Double(0), options: .CurveLinear, animations: 
            tableView.frame = CGRectMake(tableView.frame.origin.x, 0 - self.calcTopOffsetToCell(indexPath), tableView.frame.size.width, tableView.frame.size.height + 190)
            , completion: 
                (finished: Bool) in
                self.selectedIndex = indexPath
                cell.amountTextfield.becomeFirstResponder()
        );

我收到错误“调用中的额外参数'延迟'”

不确定是我做错了什么还是这是一个错误。有什么想法吗?

即使我使用了最基本的语法:

UIView.animateWithDuration(0.5, animations: 
            tableView.frame = CGRectMake(tableView.frame.origin.x, 0 - self.calcTopOffsetToCell(indexPath), tableView.frame.size.width, tableView.frame.size.height + 190)

        )

我收到“调用中参数'延迟'的参数缺失”错误

【问题讨论】:

我遇到了同样的错误,但情况不同。原来这是因为在我的动画块中,一个方法需要一个 CGFloat 并且我使用的是双精度。您的 calcTopOffsetToCell 函数是否返回 CGFloat?我的猜测是,如果您注释掉 tableView.frame 行,错误就会消失。 【参考方案1】:

似乎该错误实际上与 calcTopOffsetToCell() 未返回 CGFloat 并且 IDE 错误不正确有关。

【讨论】:

谢谢,这节省了我的时间。在当前阶段(xcode6 beta5),“Missing argument for parameter”错误几乎意味着块内部存在一些问题。

以上是关于Xcode 6 Beta 5 中的 UIView.animateWithDuration 更改的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7 beta (5 & 6) 看不到某些 VC 的 IBOutlets

在 Xcode 6 beta 5 中使用“po”命令调试选定视图

使用 Xcode6-Beta 运行 Xcode 5.1.1 项目

Xcode 5 安装 Xcode 6 beta 2 后无法构建模块 Cocoa

更新到 Xcode 7 Beta 5 并收到此错误:失败,退出代码 6

Xamarin Studio 5 将与 Xcode 6 Beta 一起使用吗?