ios - 从屏幕右侧向左滑动 UIView
问题描述
我正在开发应用程序,其中我正在显示 UITableView。在 UITableView 之上有一个按钮过滤器。现在单击该按钮,我想为 UIVIEW 设置动画以从屏幕右侧到屏幕左侧进行动画处理。它必须进行动画处理,直到达到屏幕宽度的 70%。
现在这样做会使以前的视图变暗一点,我想让外观和感觉像 android 中的导航抽屉一样。但这只会显示该 UIView 中的过滤器设置。
我搜索了一下,那里有太多的库来执行我想要的任务,但我想自己编写代码并为 UIView 或 Nib 设计制作动画。
无论如何,在不使用任何库或任何东西的情况下执行我想要的东西吗?请让我知道我在等待。提前致谢。
解决方案
在这种情况下,我喜欢为视图设置动画的方式是在视图上使用变换——它保留了视图的布局和外观,并且通常看起来比更改视图的宽度更好。
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
})
推荐阅读
- sql - 带有附加检查的 SQL 分组
- reactjs - Material UI React - 概述的 TextField 边框或文本无法正确显示
- android - Android 12 在 Chrome 意图中打开链接
- ubuntu - Haskell - GHC 错误:找不到模块“Prelude”/也许您还没有安装包“base-4.12.0.0”的分析库?
- php - 最近在 laravel 7 中通过 cookie 浏览的产品一次只能保存 1 个产品
- c# - 如何使用 webclient 下载文件使用 memortstream 将它们保存为 gif 类型的图像,同时报告进度?
- r - 根据R中不同数据帧的两个变量的ifelse问题
- javascript - 如何将信息从控制器传递到局部视图
- node.js - 是否可以在 VSCode Jupyter Notebook 中本地运行 node.js?
- crm - 是否可以在 appsettings.json 中发布/更改数据或值?