現在、Xcode 4.0.2を使用してiPhoneアプリを作成しています。ユーザーが携帯電話を使用したときに、アプリが画面を切り替えるようにします。たとえば、ユーザーが自分のiPhoneを横に動かすと、iPhoneはあらかじめ作成された横のビューに変わります。私はそれのためのコードを作成しましたが、私はiOSシミュレータでそれを実行し、デバイスを回転させると何も起こりません。私は間違って何をしていますか?iPhoneのインターフェイスオリエンテーション - これは何が問題なのですか?
ヘッダーファイル:
#import "FlipsideViewController.h"
@interface MainViewController : UIViewController <FlipsideViewControllerDelegate> {
IBOutlet UIView *portraitView;
IBOutlet UIView *landscapeView;
}
@property (nonatomic, retain) UIView *portraitView;
@property (nonatomic, retain) UIView *landscapeView;
@end
実装ファイル(.M):
#import "MainViewController.h"
#define deg2rad (3.1415926/180.0)
@implementation MainViewController
@synthesize portraitView;
@synthesize landscapeView;
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait);
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(90));
self.view.bounds=CGRectMake(0.0, 0.0, 480.0, 320.0);
} else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) {
self.view=landscapeView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(-90));
self.view.bounds=CGRectMake(0.0, 0.0, 480.0, 320.0);
} else {
self.view=portraitView;
self.view.transform=CGAffineTransformMakeRotation(deg2rad*(0));
self.view.bounds=CGRectMake(0.0, 0.0, 300.0, 460.0);
}
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
@end
私は必要ないいくつかのことを取り出しているので、.mファイルは少し裸に見えるかもしれ。私はIBOutlets landscapeViewとportraitViewを、MainViewController.xibという1つの.xibファイル内の2つの異なるビューにリンクしました。
私がビルドするとき、エラー、警告、またはシグナルはありません。
これを行う簡単な方法はありますか、間違っているだけですか?誰かが助けてくれましたか? ありがとうございます!
のようになります、最初に一致します、それが到達不能またはデッドコードを警告しません、あなたの第二2つのreturn文は、到達不能でした機能が最初に当たると機能が終了するので、 –
うわー、ありがとう!あなたは素晴らしいです!それは今や理にかなっていて、うまくいきます!ありがとう! –