繁体   English   中英

从屏幕右侧向左滑动UIView

[英]Slide in the UIView from Right of screen to left

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

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

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

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

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

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

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

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

UIView.animate(withDuration: 0.35, animations: {

   let moveLeft = CGAffineTransform(translationX: -(view.bounds.width * 0.7), y: 0.0)
    viewController.view.transform = moveLeft

})

要将视图返回其正常位置,只需使用0.0作为translationX值再次设置变换即可。

UIView.animate(withDuration: 0.35, animations: {

   let zero = CGAffineTransform(translationX: 0.0, y: 0.0)
    viewController.view.transform = zero

})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM