- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在制作一个可搜索列表应用程序。它将有一个“过滤器”按钮,单击该按钮将显示过滤选项列表
模态视图 Controller 应该从右到左,而不是覆盖整个屏幕(如下所示)。
我设法以编程方式显示 View Controller ,覆盖整个页面,但我无法找出如何为 View Controller 的打开设置动画(从右到左)以及如何留出一些空间请参阅其他 View Controller 。它必须在 Swift 中。我已经看到了一些关于此的问题,但我能找到的所有问题都使用了 Objective C 和已弃用的 API。
谢谢
例子:
最佳答案
毫无疑问,有多种方法可以做到这一点。
一种方法是将“容器 View ”(它是 IB 中对象列表中的一种特殊 View 类型)添加到您当前的 View Controller 中,然后按住控制键将嵌入的 segue 从容器 View 拖到另一个 View Controller 场景中你想主持。将容器 View 放置在您希望它结束的位置并调整其大小,并添加一个前沿约束以将其定位在该位置。
当您使用容器 View 和嵌入 segue 时,系统会处理您需要做的所有内务处理,以便托 pipe View Controller 。
将导出连接到约束。
在您的 viewWillAppear 方法中,将 screen width - container x
添加到约束的常量中,并在内容 View 上调用 layoutIfNeeded() 以将其移出屏幕而没有动画。将添加到水平约束的量保存在实例变量中。
然后,当您想要将其动画化到屏幕上时,更改约束上的常量值(减去您在 viewWillAppear 中添加的量)并在 UIView animateWithDuration:animations 中调用
block 。layoutIfNeeded()
:
关于ios - 我如何在 Swift 中呈现另一个内部的 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904175/
我是一名优秀的程序员,十分优秀!