2009-08-29 17 views
19

私はこの質問を持っている他の人を見てきましたが、ほとんどの回答はiPhone OSの最新3.0ビルドでは動作していません。とにかく、私はどのように私はプログラムでUIViewを加速度計からの入力なしで回転することができますかと思います。私が今までに見つけたコード:Cocoa TouchでUIViewを回転

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

しかし、これは私のテストではUIViewでは機能しません。この/他のコードが機能するために私のAppDelegateをやる必要があるか、同じことをする良い方法がありますか?

ありがとうございました!

答えて

40

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; 
+14

3.14159の代わりにM_PIを使用する –

+32

M_PI_2の代わりにM_PI_2を使用する – Allyn

1

は、私はそれで成功を収めました:これは私の作品

CATransform3D rotationTransform = CATransform3DIdentity; 
[view.layer removeAllAnimations]; 
rotationTransform = CATransform3DRotate(rotationTransform, angle, 0.0, 0.0, 1); 
view.layer.transform = rotationTransform; 
+0

こんにちはマルコ:上記のコードでは、「角度」は何ですか? – PF1

+1

また、QuartzCoreフレームワークをインポートしてもビルドできないようです。 – PF1

+0

角度はラジャンの角度で、ビューが回転します。おそらく他のエラーのためにビルドされません。ビルドログは何を言いますか? – Marco

0

わからないこれは、あなたがそれを使用したくない場合がありますので、プライベートAPIと考えられるが、必要に応じている場合デバイスを傾けることなしに変更する方向を強制するために、あなたが呼び出して試すことができます。

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

私はそれをテストしていませんそれでも3.1.2で動作します。私はそれが3.0で動作することを知っている。

関連する問題