我有一个视图,我想用手势识别器进行缩放和旋转。我计算出比例的新界限:
let newBounds = moveView.bounds.applying(CGAffineTransform.identity.scaledBy(x: scalee, y: scalee))
它可以正常工作,无需轮换参与。在简单的CGAffineTransform旋转之后,让我们说45度,我尝试再次缩放,第一次计算第一次有太大的比例,并在之后工作正常。
似乎旋转改变了框架,并且某种程度上与该尺度有关,不确定如何或为什么......
以下是重新创建此问题的代码:
DispatchQueue.main.asyncAfter(deadline: .now()+2) {
self.moveView.bounds = self.moveView.bounds.applying(CGAffineTransform.identity.scaledBy(x: 1.1, y: 1.1))
}
DispatchQueue.main.asyncAfter(deadline: .now()+3) {
self.moveView.transform = CGAffineTransform(rotationAngle: 0.7)
}
DispatchQueue.main.asyncAfter(deadline: .now()+4) {
self.moveView.bounds = self.moveView.bounds.applying(CGAffineTransform.identity.scaledBy(x: 1.1, y: 1.1))
// This gets view too big !
}
DispatchQueue.main.asyncAfter(deadline: .now()+5) {
self.moveView.bounds = self.moveView.bounds.applying(CGAffineTransform.identity.scaledBy(x: 1.1, y: 1.1))
}