我正在制作一个可搜索的列表应用。它将有一个过滤器'单击按钮时,将显示过滤选项列表
模态视图控制器应该从右到左,而不是覆盖整个屏幕(如下所示)。
我已经成功地以编程方式显示了一个视图控制器,覆盖了整个页面,但我无法找到如何为视图控制器的开放设置动画(从右到左)以及如何留下一些空间看到其他View Controller。它一定是在Swift中。我已经看到了一些关于此的问题,但我发现的所有问题都使用了Objective C和弃用的API。
由于
示例:
答案 0 :(得分:7)
毫无疑问,有多种方法可以做到这一点。
一种方法是添加一个"容器视图" (它是IB中对象列表中的特殊视图类型)到当前视图控制器中并控制 - 将嵌入segue从容器视图拖到要托管的其他视图控制器场景中。放置容器视图并将其放大到最终位置,并添加一个前沿约束,将其定位在该位置。
当您使用容器视图和嵌入segue时,系统会负责您为托管子视图控制器而需要做的所有内务管理。
将插座连接到约束。
在viewWillAppear方法中,将layoutIfNeeded()
添加到约束的常量中,并在内容视图上调用layoutIfNeeded(),将其移出屏幕而不显示动画。将添加的数量保存到实例变量中的水平约束中。
然后,当您想要将其设置到屏幕上时,更改约束上的常量值(减去您在viewWillAppear中添加的数量)并在UIView animateWithDuration:animations:
块内调用link.text( linkText.replace(/\./g," ") );
link.text( linkText.replace(/_/g," ") );
。
答案 1 :(得分:0)
您可以创建一个容器视图,并在屏幕上从右向左设置动画。
class Section < ActiveRecord::Base
self.abstract_class = true
end