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