尝试自定义动画时符合 UIViewControllerAnimatedTransitioning 协议时出错
Posted
技术标签:
【中文标题】尝试自定义动画时符合 UIViewControllerAnimatedTransitioning 协议时出错【英文标题】:Error in conforming with UIViewControllerAnimatedTransitioning protocol while trying Custom Animations 【发布时间】:2015-06-27 03:04:57 【问题描述】:我一直在关注有关创建自定义动画的在线教程。因此,为了制作自定义动画,我创建了一个 NSObject 类型的类名 Transition Manager。我面临两个问题,
1) 所以当进一步定义类时,
class TransitionManager: NSObject, UIViewControllerAnimatedTransitioning,
UIViewControllerTransitioningDelegate
//Further Code
我得到一个编译时错误,
Type 'TransitionManager' does not conform to protocol
'UIViewControllerAnimatedTransitioning'
和
Protocol requires function 'transitionDuration' with type
'(UIViewControllerContextTransitioning) -> NSTimeInterval'
这里是'transitionDuration'函数:
// return how many seconds the transition animation will take
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval
return 0.5
2) 另一个编译时错误弹出,在以下行:
// get the duration of the animation
let duration = self.transitionDuration(transitionContext)
错误:
'TransitionManager' does not have a member named 'transitionDuration'
这是完整的 TransitionManager.swift:http://pastebin.com/LkLym5Ci
【问题讨论】:
transitionDuration
在调用它的类之外,这就是为什么会发生“TransitionManager 没有名为 transitionDuration 的成员”的原因。将transitionDuration
放入 TransitionManager
类以修复此错误。
非常感谢@ericd!修复它! :)
酷!我正在写一个正确的答案,以便它可以帮助其他用户。
甜蜜。再次感谢!
【参考方案1】:
您的transitionDuration
方法当前在类之外,如PasteBin 中所示。
这就是为什么您会收到一条错误消息,指出 transitionDuration
不是该类的成员。
如果你将transitionDuration
方法放在 TransitionManager
类中,错误就会消失。
【讨论】:
以上是关于尝试自定义动画时符合 UIViewControllerAnimatedTransitioning 协议时出错的主要内容,如果未能解决你的问题,请参考以下文章