当前位置 : 主页 > 手机开发 > ios >

ios – 如何在Swift中将视图控制器呈现在另一个中?

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在制作一个可搜索的列表应用程序.它将有一个“过滤器”按钮,单击该按钮将显示过滤选项列表 模态视图控制器应该从右到左,而不是覆盖整个屏幕(如下所示). 我已经设法以编程方
我正在制作一个可搜索的列表应用程序.它将有一个“过滤器”按钮,单击该按钮将显示过滤选项列表

模态视图控制器应该从右到左,而不是覆盖整个屏幕(如下所示).

我已经设法以编程方式显示一个视图控制器,覆盖整个页面,但我无法找到如何设置视图控制器的开放动画(从右到左)以及如何留出一些空间来查看另一个查看控制器.它一定是在Swift中.我已经看到了一些关于这个的问题,但我能找到的所有问题都使用了Objective C和不推荐使用的API.

谢谢

例:

毫无疑问,有多种方法可以做到这一点.

一种方法是将“容器视图”(它是IB中对象列表中的特殊视图类型)添加到当前视图控制器中并控制 – 将嵌入segue从容器视图拖到您想要的其他视图控制器场景中举办.将容器视图放置并调整到最终位置,然后添加将其定位在该位置的前沿约束.

当您使用容器视图和嵌入segue时,系统会处理您需要执行的所有内务处理,以便托管子视图控制器.

将插座连接到约束.

在viewWillAppear方法中,将屏幕宽度 – 容器x添加到约束的常量,并在内容视图上调用layoutIfNeeded(),将其移出屏幕而不显示动画.将添加的数量保存到实例变量中的水平约束中.

然后,当您想要将其设置到屏幕上时,更改约束上的常量值(减去您在viewWillAppear中添加的数量)并在UIView animateWithDuration:animations:block中调用layoutIfNeeded().

网友评论