Ios UIView在旋转时消失
我正在尝试做一个简单的加号来检查动画(Ios UIView在旋转时消失,ios,swift,animation,Ios,Swift,Animation,我正在尝试做一个简单的加号来检查动画(+->✓)。但由于某种原因,水平线在旋转时会消失 这是行的代码,vertLine和horizLine(它们都是UI按钮中的UI视图): 这是为它们设置动画的代码(动画很慢,所以我可以看到发生了什么): 。如您所见,水平线随着旋转而消失 为什么会发生这种情况?我如何修复它?我不确定为什么会发生这种行为,但我找到了一个解决方法: 由于某种原因,当我设置horizLine的原点时,直线变细了。当我设置中心时,效果很好 如果有人知道为什么设置中心有效而设置原点无效,
+->✓代码>)。但由于某种原因,水平线在旋转时会消失
这是行的代码,vertLine
和horizLine
(它们都是UI按钮中的UI视图):
这是为它们设置动画的代码(动画很慢,所以我可以看到发生了什么):
。如您所见,水平线
随着旋转而消失
为什么会发生这种情况?我如何修复它?我不确定为什么会发生这种行为,但我找到了一个解决方法:
由于某种原因,当我设置horizLine
的原点时,直线变细了。当我设置中心时,效果很好
如果有人知道为什么设置中心有效而设置原点无效,请告诉我
let inset = imageEdgeInsets.top
let lineWidth: CGFloat = 1
vertLine.bounds = CGRect(origin: CGPoint.zero, size: CGSize(width: lineWidth, height: frame.height - inset * 2))
vertLine.center = CGPoint(x: frame.width / 2, y: frame.height / 2)
vertLine.backgroundColor = tintColor
addSubview(vertLine)
horizLine.bounds = CGRect(origin: CGPoint.zero, size: CGSize(width: frame.width - inset * 2, height: lineWidth))
horizLine.center = CGPoint(x: frame.width / 2, y: frame.height / 2)
horizLine.backgroundColor = tintColor
addSubview(horizLine)
UIView.animate(withDuration: 2) {
self.vertLine.transform = CGAffineTransform(rotationAngle: -CGFloat.pi * 3 / 4)
self.vertLine.center.x = self.frame.width / 2 + self.vertLine.frame.width * 1 / 4
self.vertLine.center.y = self.frame.height / 2
self.horizLine.transform = CGAffineTransform(rotationAngle: -CGFloat.pi * 3 / 4).scaledBy(x: 0.5, y: 1)
self.horizLine.frame.origin.x = self.vertLine.frame.origin.x - self.horizLine.frame.width
self.horizLine.frame.origin.y = self.frame.height / 2
print(self.horizLine.frame)
print(self.vertLine.frame)
}