有个 interactive transition 的问题请教

2016-01-20 10:40:25 +08:00
 georgetso
代码地址: http://pan.baidu.com/s/1qX5hV6O

可以看到,当上下拖动红色的呈现一半的 VC 时,后面白色的 VC 的 alpha 并没有跟着变化。
为啥?怎么解决?
1613 次点击
所在节点    iDev
4 条回复
lxian2
2016-01-20 10:49:24 +08:00
没太明白你的问题呀
georgetso
2016-01-20 10:51:25 +08:00
@lxian2 下载代码,运行,向下拖动红色的 view controller ,背后白色的 view controller 的 alpha 没有跟着你的动作变化。也就是说 alpha 变化不是 interactive 的,我想知道为啥。
lxian2
2016-01-20 11:45:03 +08:00
我认为原因是 dismiss 的时候 animateTransition 里面没有设置 transitionContext.containerView()
改成
```
if let toVC = toVC, toView = toVC.view, fromVC = fromVC, fromView = fromVC.view {
if isPresenting {
var frame = transitionContext.initialFrameForViewController(fromVC)
frame.origin.y = frame.size.height
toView.frame = frame
transitionContext.containerView()?.addSubview(toView)
} else {
toView.frame = transitionContext.finalFrameForViewController(toVC)
fromView.frame = transitionContext.initialFrameForViewController(fromVC)
print(toView.frame, fromView.frame)
transitionContext.containerView()?.addSubview(toView)
transitionContext.containerView()?.addSubview(fromView)
toView.alpha = 0.5
toView.transform = CGAffineTransformMakeScale(0.98, 0.98)
}
}
```
就可以看到你想要的效果了
lxian2
2016-01-20 11:46:19 +08:00
vc.modalPresentationStyle = .Custom
然后这个如果设置成.Custom 的话需要自己实现一个 UIPresentationController
http://stackoverflow.com/questions/24338700/from-view-controller-disappears-using-uiviewcontrollercontexttransitioning/25775726#25775726

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/252022

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX