Я пытаюсь сделать простой плюс, чтобы проверить анимацию (+ -> ✓
). Однако по какой-то причине горизонтальная линия исчезает при вращении.
Это код для строк, vertLine
и horizLine
(оба они являются UIViews в UIButton):
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)
}
Вот как это выглядит . Как видите, horizLine
исчезает при вращении.
Почему это происходит и как я могу это исправить?