Я использую жест щипка, чтобы позволить пользователям увеличивать / уменьшать размер изображения.Я временно манипулирую этим CGAffineTransform, чтобы позволить пользователю поиграть с масштабом, затем просто отменяю его и устанавливаю размер кадра так, чтобы изображение масштабировалось с качеством (CGAffineTransformScale ничего не делает для качества изображения и только растягивает изображение).
-(void)handlePinch:(UIPinchGestureRecognizer *)recognizer{
if(recognizer.state == UIGestureRecognizerStateBegan){
self.alpha = 0.7;
startingTransform = self.transform;
}
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
if (recognizer.state == UIGestureRecognizerStateEnded){
self.alpha = 1.0;
CGRect endFrame = self.frame;
self.transform = startingTransform;
self.frame = endFrame;
//self.transform = CGAffineTransformRotate(self.transform, acos(startingTransform.c)); //reapply rotation?
}
}
Проблема : проблема с моим кодом в том, что он не учитывает ротацию.Некоторые из моих изображений вначале повернуты (с ранее примененным к ним CGAffineTransformRotate), и после завершения жеста пинчинг происходит то, что вид изображения деформируется в очень тонкие прямоугольники, лишенные какого-либо поворота или масштаба, которыми они были до этого.
Я думал, что смогу перенести исходное вращение и применить его после установки рамки, но я не думаю, что это работает.Любая помощь приветствуется.Спасибо