在UIPanGestureRecognizer中的框架上的UIView.animate

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

我正在尝试构建一个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

ios swift uiview uiviewanimation uipangesturerecognizer
1个回答
0
投票

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

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

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

希望这有助于其他人!

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