【发布时间】:2017-06-30 21:24:02
【问题描述】:
我正在尝试为我的导航控制器转换制作幻灯片动画。例如,当我推送一个 VC 时,presenting 和 presenting VC 将像 UIPageViewController 转换一样转换。
这是我目前编写的代码:
guard let fromView = transitionContext.view(forKey: .from),
let toView = transitionContext.view(forKey: .to)
else { return }
let containerView = transitionContext.containerView
toView.frame = CGRect(x: -toViewFrameHorizationtalPosition,
y: 64,
width: UIScreen.main.bounds.width,
height: UIScreen.main.bounds.height)
containerView.addSubview(fromView)
containerView.addSubview(toView)
UIView.animate(withDuration: transitionDuration(using: transitionContext),
delay: 0,
options: .curveEaseInOut,
animations: {
containerView.frame.origin.x = self.toViewFrameHorizationtalPosition
}) { completed in
transitionContext.completeTransition(!transitionContext.transitionWasCancelled)
}
过渡动画正在按照我的预期发生,但即使经过各种尝试,一旦动画执行,视图就会变得无响应;它不识别任何触摸事件。
导航栏工作正常,但是当我切换回初始视图时,该视图也没有响应。
我已经阅读了很多这方面的内容,并且已经为此苦苦挣扎了一段时间,尽管我似乎无法发现问题所在。有什么想法吗?
【问题讨论】:
-
首先,您的
fromView应该已经在containerView中,因此无需再次添加Subview。接下来,看起来您正在更改containerView的框架...但您真的不想更改fromView或toView(或两者)的框架inside @ 987654328@?
标签: ios swift animation uiviewcontroller uiviewanimationtransition