我正在将一个较旧的应用程序移植到Xcode 7 beta,并且我的动画出现错误:
无法使用类型为’(Double,delay:Double,options:nil,animations:()->
_,completion:nil)的参数列表调用’animateWithDuration’
这是代码:
UIView.animateWithDuration(0.5, delay: 0.3, options: nil, animations: {
self.username.center.x += self.view.bounds.width
}, completion: nil)
这在Xcode 6中有效,因此我假设这是Swift中的更新。所以我的问题是:
animateWithDuration的Swift 3语法是什么?
这是Swift 3语法的更新:
UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: {
self.username.center.x += self.view.bounds.width
}, completion: nil)
如果您需要添加完成处理程序,只需添加一个闭包,如下所示:
UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: {
// animation stuff
}, completion: { _ in
// do stuff once animation is complete
})
旧答案:
事实证明,这是一个非常简单的解决方案,只需将更options: nil
改为即可options: []
。
Swift 2.2语法:
UIView.animateWithDuration(0.5, delay: 0.3, options: [], animations: {
self.username.center.x += self.view.bounds.width
}, completion: nil)
Swift 2摆脱了C-
Style逗号分隔的选项列表,而支持选项集(请参阅:OptionSetType)。在我最初的问题中,我传入nil
了我的选项,该选项在Swift
2之前有效。通过更新的语法,我们现在看到一个空选项列表作为一个空集:[]
。
带有某些选项的animateWithDuration的示例如下:
UIView.animateWithDuration(0.5, delay: 0.3, options: [.Repeat, .CurveEaseOut, .Autoreverse], animations: {
self.username.center.x += self.view.bounds.width
}, completion: nil)
问题内容: Swift具有以下方便的语法: 它在s 以外的地方被镜像: 我不确定在对话/票务中该怎么称呼。也许是“类型推断点语法”?我不确定 此语法是否有正式名称? 如果是这样,那是什么? 问题答案: 它称为 隐式成员表达式 。从语言指南的语法部分: 隐式成员表达式是在类型推断可以确定隐式类型的上下文中访问类型成员(例如枚举用例或类型方法)的缩写方式。它具有以下形式: 。 例如:
本文向大家介绍什么是逐帧动画?相关面试题,主要包含被问及什么是逐帧动画?时的应答技巧和注意事项,需要的朋友参考一下 实现逐帧动画需要两个条件: (1)相关联的不同图像,即动画帧;(2)连续播放。
问题内容: 在Swift 2.2中阅读Darwin库时,我发现了以下代码。 第二行中的“ @_silgen_name”是什么? 我从这里找到了以下信息,但是我想要更多详细信息,例如Apple Developer Library。 如果只是要从C调用的一组特定的Swift函数,则可以使用@_silgen_name属性覆盖改写的名称,和/或使它们成为@convention(c)以使用C调用约定。 问题
本文向大家介绍什么是关键帧动画?相关面试题,主要包含被问及什么是关键帧动画?时的应答技巧和注意事项,需要的朋友参考一下 表示关键状态的帧动画叫做关键帧动画。 所谓关键帧动画,就是给需要动画效果的属性,准备一组与时间相关的值,这些值都是在动画序列中比较关键的帧中提取出来的,而其他时间帧中的值,可以用这些关键值,采用特定的插值方法计算得到,从而达到比较流畅的动画效果。
问题内容: 我只是想知道Swift是像php一样的动态还是静态的,我的意思是我可以在应用程序运行时生成类吗? 问题答案: 它是静态的-非常静态。编译器必须有关于所有类和功能的全部信息 在编译时 。您可以(使用)“扩展”现有的类,但是即使那样,您也必须在编译时完全定义该扩展所包含的内容。 Objective-C是动态的,并且在现实生活中,由于您可能会在Cocoa的存在下使用Swift,因此可以使用O
问题内容: 我无法理解以下语法: 我看到SortedList类扩展了LinkedList。我只是不知道 手段。 到目前为止,我对它的理解是类型T必须是实现Comparable的类型…但这是什么? 问题答案: 泛型中的super与extends相反。并不是说可比对象的泛型类型必须是T的子类,而是要说它必须是T的超类。区别很重要,因为extends告诉您可以从类中得到什么(至少可以得到,也许是子类)。