ios - 如何实现交互式单元格滑动以触发过渡动画,如 WhatsApp

标签 ios swift swift3 uiviewanimationtransition

我正在寻找如何像 WhatsApp 单元格滑动一样实现,我已经使用 UIPanGestureRecognizer 实现了单元格滑动动画,唯一剩下的就是执行交互式动画 - 添加新的 UIViewController 到窗口并根据手势识别速度和X轴值-显示。

一些额外的注释以准确说明我想要实现的目标:

  • 我有一个 UITableViewController,其中包含自定义的 UITableViewCell。我希望能够从左向右拖动一个单元格以启动交互式动画。 (注意:我已经实现了单元格滑动)。

  • 新的 UIViewController 将从左向右推送。

  • 滑动单元格时,UITableViewController 的 View 将向右移动,此时,我想在其旁边显示推送 UIViewController .

这里有一个 GIF 动图,用于详细说明我需要什么(GIF 动图是从右向左滑动单元格,我需要相反的方向):

enter image description here

最佳答案

我建议使用 SWRevealViewController .使用他们的指南很容易设置,而且看起来非常棒。我发现,当您预加载用作下方显示内容的 UIViewController 时,它的效果会更好。

它为您正在寻找的功能增加了出色的用户体验。

enter image description here

如果您希望选择加入该功能,它也可以是用户交互的。我没有使用过交互功能,但只需几行代码即可轻松启动和运行:

let storyboard = UIStoryboard(name: "Main", bundle: .main)
let mainVC = storyboard.instantiateInitialViewController()
let menuStoryboard = UIStoryboard(name: "Menu", bundle: sdkBundle)
let menuNav = menuStoryboard.instantiateInitialViewController() as! UINavigationController
let mainRevealVC = SWRevealViewController(rearViewController: menuNav, frontViewController: mainVC)
mainRevealVC?.modalTransitionStyle = .crossDissolve
present(mainRevealVC!, animated: true, completion: nil)

要显示显示的 UIViewController,您只需调用

// Every UIViewController will have a `self.revealViewController()` when you `import SWRevealViewController`
self.revealViewController().revealToggle(animated: true)

关于ios - 如何实现交互式单元格滑动以触发过渡动画,如 WhatsApp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44554582/

相关文章:

ios - Default.png 显示错误

ios - RESTKit:删除带有主体参数的对象

ios - 了解AVCapture设备exposureDuration、exposureTargetOffset、exposureTargetBias

ios - 类 AVPlayer 的实例已被释放,而键值观察者仍向其注册

constants - 如何发现最低的CGFloat负值?

ios - 从 swift 的子类函数导航到 viewcontroller

ios - 如何查看两周前的 Apple App Store 崩溃报告?

ios - iOS 13.4访问MPMusicPlayerController.systemMusicPlayer使应用程序崩溃

swift - 获取 UIScrollView 的可见内容时的额外空白

ios - 应用程序被杀死后如何找到用户位置?