UIView исчезает при вращении - PullRequest
       10

UIView исчезает при вращении

0 голосов
/ 04 сентября 2018

Я пытаюсь сделать простой плюс, чтобы проверить анимацию (+ -> ✓). Однако по какой-то причине горизонтальная линия исчезает при вращении.

Это код для строк, 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 исчезает при вращении.

Почему это происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 04 сентября 2018

Я не уверен, почему это происходит, но я нашел обходной путь:

По какой-то причине линия истончалась, когда я установил horizLine происхождение. Это работало просто отлично, когда я установил центр.

Если кто-то знает, почему настройка центра работает, а установка источника - нет, скажите, пожалуйста!

...