繁体   English   中英

UIView 动画到另一个位置时会变形

[英]UIView deforms when it is animated to another position

我在 UIView 上遇到了一个非常愚蠢的问题。 我以编程方式创建 UIView,然后通过使角半径为视图高度的一半使其成为一个圆,如下所示:

(UIView)

但是当我尝试将圆圈动画到不同的位置时,它会像这样变形:

在此处输入图片说明

这是我用来为视图设置动画的代码,只是一个简单的 UIView.animateWithDuration:

UIView.animateWithDuration(2, delay: 0, options: UIViewAnimationOptions.AllowUserInteraction, animations: {
                    self.secondDot.frame.origin = CGPoint(x: self.view.frame.size.width - self.secondDot.frame.size.width, y: 0)
                    self.secondDot.frame.size = self.secondDot.frame.size
                    }, completion: nil)

我还应该补充一点,圆圈并不总是变形,但经常变形。 请帮助任何建议将不胜感激。

编辑:我应该提到在 UIView.animationWithDuration 发生之前圆圈已经在运动我不知道这是否可能是一个问题

这条线的重点是什么?

self.secondDot.frame.size = self.secondDot.frame.size

你要么

  1. 想在移动时统一调整圆的大小
  2. 或不。

如果情况 1) newSize.width != newSize.height...但这是一个问题,因为您的圆圈在幕后不再是“正方形”。 如果情况 2) 只需删除线条。

我有完全相同的情况。

经过一番研究,我在头文件中找到了setFrame方法的注释

// 动画。 如果视图被转换,则不要使用框架,因为它不会正确反映视图的实际位置。 改用边界 + 中心。

我决定使用setCenter而不是setFrame来解决失真问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM