私はオリエンテーションが初めてです。iOS でオリエンテーションを実装する方法を知りたいです。iOS5(以下)とiOS6で使用方法が異なります。
すべてのオブジェクトのフレームを 4 種類 (縦、上、下、縦、横、左、横、右) に設定する必要がありますか?
私は試した
-(BOOL)shouldAutoRotate
{
return YES;
}
しかし、それは機能していません。
私はオリエンテーションが初めてです。iOS でオリエンテーションを実装する方法を知りたいです。iOS5(以下)とiOS6で使用方法が異なります。
すべてのオブジェクトのフレームを 4 種類 (縦、上、下、縦、横、左、横、右) に設定する必要がありますか?
私は試した
-(BOOL)shouldAutoRotate
{
return YES;
}
しかし、それは機能していません。
これは私を助けたコードです。ご助力いただきありがとうございます。
- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
//Only iOS5 and below
return YES;
}
- (BOOL)shouldAutorotate {
//Only iOS6
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
//Only iOS6
return UIInterfaceOrientationMaskAll;
}
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
//iOS6 and below
if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight ) {
[self landscapeView];
}
else {
[self portraitView];
}
}
-(void) portraitView {
//Set the portrait frames here.
}
-(void) landscapeView {
//Set the landscape frames here.
}
もっと明確にできますか?一部のビューでは方向の変更を許可し、他のビューでは許可しないようにしたいですか? iOS6 ですべての回転を許可する場合は、各 viewController で以下の関数に対して yes を返すだけです。
-(BOOL)shouldAutoRotate
{
return YES;
}
shouldAutoRotateToInterfaceOrientation メソッドは iOS6 で非推奨になりました。
また、ある向きで特定の viewController をロックしたい場合は、以下のメソッドをオーバーライドします。
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationPortrait;//whichever
}
一部のviewControllerで方向の変更を許可し、他のビューコントローラーでは許可しない場合は、すべての基本クラスと継承されたクラスでこれらのメソッドをオーバーライドする必要があります。向きの変更の通知を受け取り、ビューの変更を手動でトリガーする場合は、NSNotificationCenter を使用するオプションもあります。それを行う方法の詳細が必要な場合はお知らせください。
それが役に立てば幸い!