如何实现交互式单元格滑动以触发像WhatsApp这样的过渡动画

MEn*_*bah 7 uiviewanimationtransition ios swift swift3

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

关于我想要达到的目标,还有一些额外的说明是准确的:

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

  • 新的UIViewController将从左侧推出.

  • 在滑动单元格的同时,UITableViewController视图将向右移动,此时,我想显示UIViewController它旁边的推动.

这里有一个GIF,可以了解我需要的更多细节(GIF从右向左滑动单元格,我需要相反):

在此输入图像描述

Bra*_*n A 6

我建议使用SWRevealViewController.使用他们的指南很容易设置它看起来非常棒.我发现当你预先加载UIViewController你使用的是下面显示的内容时,它甚至可以更好地工作.

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

在此输入图像描述

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

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)
Run Code Online (Sandbox Code Playgroud)

为了让展示UIViewController得到展示,你只需要打电话

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