在UIPanGestureRecognizer中的框架上的UIView.animate

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在UIPanGestureRecognizer中的框架上的UIView.animate相关的知识,希望对你有一定的参考价值。

我正在尝试构建一个UIPanGestureRecognizer委托,当它达到某个x值时移动UIView的宽度/高度但是我遇到了这个奇怪的闪烁,当值超过阈值时发生(在下面的例子中为65px)。

@objc func moveCardRec(sender: UIPanGestureRecognizer){
    if sender.translation(in: self).x < -65.0 {
       self.makeButtonPop()
    } else {
       self.makeButtonUnPop()
    }
}

这就像我正在移动x值时,平移手势正在移动一秒钟,当UIView(我想要弹出/动画为秒)落后或重置帧时。没有线索。

附上现在正在发生的事情的GIF。你会看到一瞬间它会紧张不安。 makeButtonPop()函数只是圆形图像视图框架上的UIView.animate,其中带有复选标记。

enter image description here

答案

好的,我很蠢。花了好几个小时。

找到了解决方法。确保你想要动画的UIView在一个包含的UIView(像父母一样)内。所以上面的例子,紫色圆圈在UIView内,不会改变大小。

父级中的子级更改大小。出于某些原因,当动画的UIView和我正在拖动的那个在同一个容器/同一直接父母中时,他们彼此不喜欢并且闪烁。

希望这有助于其他人!

以上是关于在UIPanGestureRecognizer中的框架上的UIView.animate的主要内容,如果未能解决你的问题,请参考以下文章

SKScene 中的 UIPanGestureRecognizer

在UIPanGestureRecognizer中的框架上的UIView.animate

游乐场中的 UIPanGestureRecognizer

UIPanGestureRecognizer 状态结束后动画中的小问题

UIPanGestureRecognizer中的Velocity和translation开始状态

部分标题视图中的 UIPanGestureRecognizer 影响 UITableViewCell