UIViewPropertyAnimator的弹跳效果

问题描述 投票:0回答:1

假设我有一个动画器,可将视图从(0, 0)移至(-120, 0)

let frameAnimator = UIViewPropertyAnimator(duration: duration, dampingRatio: 0.8)

animator.addAnimations { 
    switch state:
    case .normal: view.frame.origin.x = 0
    case .swiped: view.frame.origin.x = -120
    }
}

我将其与UIPanGestureRecognizer一起使用,以便可以随着手指的移动连续调整视图的大小。

当我想在动画的开头或结尾添加某种反弹效果时,就会出现问题。不只是阻尼比,还有反弹效果。想象这最简单的方法是UITableViewCell的“滑动删除”功能,您可以将“删除”按钮拖动到其实际宽度之外,然后弹回。

有效地,我想实现的是在fractionComplete段之外设置[0, 1]属性的方法,因此,当小数为1.2时,偏移量变为144,而不是其最大值120。

现在,fractionComplete的最大值正好是1

下面是一些使此问题可视化的示例:

我目前拥有:enter image description here

我想要实现的目标:enter image description here

假设我有一个动画器,它将视图从(0,0)移到(-120,0):let frameAnimator = UIViewPropertyAnimator(duration:duration,durationingingRatio:0.8)animator.addAnimations {切换状态:...] >

swift animation uipangesturerecognizer bounce uiviewpropertyanimator
1个回答
0
投票

我从没使用过UIViewPropertyAnimator,所以对无法提供更多直接帮助深表歉意。但是,我已经成功复制了UITableView中的弹跳效果。

本质上,您已经设置了“自定义”单元格(在您的情况下,您使用的是UIView),当您调用了滑动操作时,完成后您要使用类似这样的视图来使视图恢复动画。注意:如果您在滑动手势代码上有完成处理程序,则将这个动画代码放在其中很有意义。

© www.soinside.com 2019 - 2024. All rights reserved.