从屏幕右侧向左滑动UIView

时间:2019-03-21 14:28:49

标签: ios uiview swift4

我正在开发应用程序,其中正在显示UITableView。在UITableView的顶部,有一个按钮过滤器。现在,在该按钮上单击,我要对UIVIEW进行动画处理,以从屏幕的右侧到屏幕的左侧进行动画处理。而且它必须动画,直到达到屏幕的70%的宽度。

现在,这样做会使“前一个”视图变暗,我想使外观和感觉像android中的“导航”抽屉一样。但这只会在该UIView中显示“过滤器”设置。

我进行了搜索,那里有太多的库可以执行我想要的任务,但是我想自己编写代码并为UIView或Nib设计制作动画。

无论如何都可以执行我想要的而无需使用任何库或任何东西?请让我知道我正在等待。提前致谢。

2 个答案:

答案 0 :(得分:1)

如果您使用自动布局,则可以通过播放视图约束来轻松地执行动画。您可以将视图的尾锚限制为视图的前锚(视图将不在屏幕上),在代码中添加对约束的引用(通过添加IBOutlet),并在要显示或隐藏它时使用其常量(例如,您可以将常数设置为等于要显示的视图的宽度)。

  

现在,这样做会使“前一个”视图变暗,我想使外观和感觉像android中的“导航”抽屉一样。但这只会在该UIView中显示“过滤器”设置。

要实现此效果,您可以在表格视图上方添加黑色视图并调整其alpha值。隐藏“滑入UIView”后,您可以将其隐藏,而在显示时,则可以显示它。

答案 1 :(得分:1)

在这种情况下,我喜欢为视图设置动画的方式是在视图上使用一种变换-这样可以保留视图的布局和外观,并且通常比改变视图的宽度更好。

O(n log(n))

要将视图恢复到正常位置,只需使用0.0作为UIView.animate(withDuration: 0.35, animations: { let moveLeft = CGAffineTransform(translationX: -(view.bounds.width * 0.7), y: 0.0) viewController.view.transform = moveLeft }) 值再次设置变换即可。

translationX
相关问题