我对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发生我不知道那可能是一个 问题
答案 0 :(得分:0)
这条线有什么意义?
self.secondDot.frame.size = self.secondDot.frame.size
你要么
如果情况1)newSize.width!= newSize.height ...但这是一个问题,因为你的圈子不再是幕后的“方形”。 如果情况2)只是删除线。
答案 1 :(得分:0)
经过一些研究,我在setFrame
方法
//动画。如果视图被转换,请不要使用框架 没有正确反映视图的实际位置。使用边界+ 中心代替。
我决定使用setCenter
代替setFrame
来解决失真问题。