Поэтому мне нужно применить некоторое масштабирование и некоторое вращение к представлению (я делаю это с помощью жестов), поэтому для каждого жестов я обновляю текущие значения scalling и rotation с помощью чего-то вроде:
self.scaleWidth *= gesture.scale; //When I detect an horizontal pinch
self.scaleHeight *= gesture.scale; //When I detect a vertical pinch
self.rotationAngle += gesture.rotationAngle; //When I detect a rotation
Затем я делаю следующее, чтобы преобразовать представление:
CGAffineTransform transform = CGAffineTransformScale(CGAffineTransformIdentity, self.scaleWidth, self.scaleHeight);
self.theSubViewToTransform.transform = CGAffineTransformRotate(transform, self.rotationAngle);
Когда я делаю только масштабирование, он отлично работает. Когда я делаю масштабирование, а затем вращаюсь, он вращается нормально. Когда после поворота я снова пытаюсь масштабировать, он не работает нормально: шкала применяется, как если бы она выполнялась после вращения, деформируя структуру изображения.
Я думал, что сделал все, что нужно было сделать, чтобы избежать этого: каждый раз начинать с преобразования идентичности, сначала масштабируя, а затем поворачивать, но, очевидно, я ошибался...
Кто-нибудь знает, что случилось с моей реализацией?
Спасибо