Поверните UIView в Какао Touch - PullRequest
       26

Поверните UIView в Какао Touch

19 голосов
/ 29 августа 2009

Я видел других людей, у которых возник этот вопрос, но большинство ответов не работают с последней версией 3.0 iPhone OS. Во всяком случае, мне интересно, как я могу программно вращать UIView без какого-либо ввода от акселерометра. Код, который я нашел до сих пор:

CGAffineTransform transform = CGAffineTransformMakeRotation(3.14159/2);
view.transform = transform;
CGRect contentRect = CGRectMake(-80, 80, 480, 320);
view.bounds = contentRect;

Однако, это не работает для UIView (в моем тестировании). Есть ли что-то, что я должен сделать в AppDelegate, чтобы этот / другой код функционировал, или есть лучший способ сделать то же самое?

Спасибо за любую помощь!

Ответы [ 3 ]

40 голосов
/ 04 ноября 2009

это работает для меня

 CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI_2);
 self.view.transform = transform;

 // Repositions and resizes the view.
 CGRect contentRect = CGRectMake(0,0, 480, 320);
 self.view.bounds = contentRect;
1 голос
/ 30 августа 2009

У меня был успех с этим:

CATransform3D rotationTransform = CATransform3DIdentity;
[view.layer removeAllAnimations];
rotationTransform = CATransform3DRotate(rotationTransform, angle, 0.0, 0.0, 1);
view.layer.transform = rotationTransform;
0 голосов
/ 04 ноября 2009

Не уверен, что это частный API, поэтому вы можете его не использовать, но если вы хотите изменить ориентацию без наклона устройства, вы можете попробовать позвонить:

[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
                      withObject:(id)UIInterfaceOrientationLandscapeLeft];

Я не проверял, что он все еще работает на 3.1.2. хотя я знаю, что это работает на 3.0.

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