在旋转后缩放UIView会导致初始缩放

时间:2018-01-08 18:19:51

标签: ios swift uiview rotation cgaffinetransform

我有一个视图,我想用手势识别器进行缩放和旋转。我计算出比例的新界限:

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

0 个答案:

没有答案