UIView在旋转时消失

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

我试图做一个简单的加号来检查动画(+ -> ✓)。但是,出于某种原因,水平线在旋转时会消失。

这是行的代码,vertLinehorizLine(它们都是UIButton中的UIViews):

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)
}

This is what it looks like。如你所见,horizLine在旋转时正在消失。

为什么会发生这种情况,我该如何解决?

ios swift animation
1个回答
0
投票

我不确定为什么会发生这种情况,但我找到了一个解决方法:

出于某种原因,当我设置horizLine的起源时,线路变薄了。当我设置中心时它工作得很好。

如果有人知道为什么设置中心工作而设置原点没有,请告诉我!

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