UIView вращается при масштабировании с использованием CGAffineTransformMakeScale - PullRequest
1 голос
/ 02 июня 2011

Я использую CGAffineTransformMakeScale для масштабирования UIView от 0,1 до 1,0.

Проблема в том, что представление также вращается во время анимации масштабирования.Таким образом, он заканчивается со шкалой вращения 1,0 И 90 °.

[self presentModalViewController:slideTwoViewController animated: NO];
[slideTwoViewController.view setTransform:CGAffineTransformMakeScale(0.1,0.1)];
[UIView beginAnimations: nil context: nil];
[UIView setAnimationDuration:2.0];
[slideTwoViewController.view setTransform:CGAffineTransformMakeScale(1.0,1.0)];
[UIView commitAnimations];

Исходная ориентация приложения - альбомная ориентация.Итак, когда анимация заканчивается, UIView выглядит как в портрете.

Это должно произойти?я что-то пропустил?

Спасибо

Ответы [ 2 ]

3 голосов
/ 02 июня 2011

Моя ставка, у представления уже есть набор преобразований, и вы перезаписываете его новым преобразованием, и оно анимирует разницу.

Попробуйте использовать следующую функцию:

CGAffineTransformScale(<#CGAffineTransform t#>, <#CGFloat sx#>, <#CGFloat sy#>)

С помощью этой функции вы передаете исходное преобразование slideTwoViewController.view.transform и ваш масштабный коэффициент.

slideTwoViewController.view.transform = CGAffineTransformScale(slideTwoViewController.view.transform, 0.1, 0.1);
0 голосов
/ 05 мая 2014

Несмотря на масштабирование rootview, попробуйте добавить подпредставление, которое станет вашим новым псевдо rootview (со всеми остальными подпредставлениями, подключенными снизу), а затем масштабировать псевдо rootview.Таким образом, вы избегаете любых коллизий преобразования, возникающих системой при реальном просмотре корня (например, автозамена), и тогда вы можете свободно использовать CGAffineTransformMakeScale.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...