UIRotationGestureRecognizer изменяется с помощью CGAffineTransformMakeScale

Представление переворачивается, используя это:

self.transform = CGAffineTransformMakeScale(-1, 1);  // self is an UIView

Чтобы повернуть это представление:

-(void)handleRotate:(UIRotationGestureRecognizer *)recognizer
{
    recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
    recognizer.rotation = 0;
}

Проблема в том, что после переворачивания вида меняется и направление вращения. Любое решение, как это исправить?

Редактировать: мое текущее решение использует логическое значение и отрицание значения распознавателя.ротации в методе handleRotate. Но я все еще ищу техническое решение.

1 ответ

Решение

Ты пробовал self.transform.a * recognizer.rotation?
Если я правильно понимаю AffineTransform, X масштабирование хранится в a,

Ссылка CGAffineTransform Искать CGAffineTransformMakeScale а также CGAffineTransformMake

Другие вопросы по тегам