滑入/滑出子视图控制器在 Swift 中的父视图控制器上部分可见
Posted
技术标签:
【中文标题】滑入/滑出子视图控制器在 Swift 中的父视图控制器上部分可见【英文标题】:Slide in/out child view controller partially visible on parent view controller in Swift 【发布时间】:2016-11-30 14:27:48 【问题描述】:我已经建立了两个独立的UIViewController
s:MainVC 和 2ndVC。现在我正在尝试连接它们并实现下图所示的效果:
加载后,2ndVC 应该在 MainVC 顶部部分可见(比如说屏幕的 1/4)。向上滑动 2ndVC 应覆盖整个屏幕,向下滑动时应返回起点。我在 MainVC 上有一些按钮,当 2ndVC 没有覆盖整个屏幕时,我希望它们保持活动状态。
2ndVC 的高度会根据数据动态变化。它有滚动视图,只有当它覆盖整个屏幕时才应该处于活动状态。
最好的方法是什么? 2ndVC 是否应该作为子视图控制器嵌入到容器视图中?我应该以某种方式在滑动时以编程方式对 2ndVC 的约束进行动画处理吗?
【问题讨论】:
为什么你不想使用UIView
而不是第二个UIViewController
?
@ArtemNovichkov 由于其结构相当复杂,我将其构建为 UIViewController。在您发表评论后,我认为这样会复杂得多?
也许吧。您可以创建UIView
的子类并在其中实现所有需要的逻辑。
@bastek 我有一个问题,在我的类似设置中,我无法让第二个 VC 进行动画输入/输出。它只是跳进/跳出。您是否设法使动画正常工作,如果可以,您可以显示一些代码吗?谢谢!
【参考方案1】:
您可能正在寻找一个容器视图控制器:
https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/ImplementingaContainerViewController.html
【讨论】:
以上是关于滑入/滑出子视图控制器在 Swift 中的父视图控制器上部分可见的主要内容,如果未能解决你的问题,请参考以下文章