2

iOS 5.1iOS 6.0の両方で実行する必要があるユニバーサル アプリでは、上記のコードを使用して、両方のバージョンで、iPhone と iPad の両方で回転できるようにします。2 つのバージョン間の互換性を維持しながら、非推奨の関数を使用せずに、これを行うためのより良い方法はありますか? 上記のコードを使用すると、iOS 6.0 を搭載した iPad で小さな問題が発生することがあります...

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

// Override to allow orientations other than the default portrait orientation.
// Rotation for v. 5.1.1
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // on iPad support all orientations
    return YES;
    }
else {
    // on iPhone/iPod support all orientations except Portrait Upside Down
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    }
return NO;
}



// Rotation 6.0

// Tell the system It should autorotate
- (BOOL) shouldAutorotate {
return YES;
}

// Tell the system which initial orientation we want to have
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;

}

// Tell the system what we support
-(NSUInteger)supportedInterfaceOrientations
 {
// return UIInterfaceOrientationMaskLandscapeRight;
// return UIInterfaceOrientationMaskAll;
return UIInterfaceOrientationMaskAllButUpsideDown;
}

追加:いくつかのテストの後、シミュレーターでもバグが再び発生しました:slitViewControllerの左側の部分が上記のエラーで黒くなります(常にではありません)(iPadを回転させて再度実行するよりも):


<Error>: CGImageCreate: invalid image size: 0 x 0.
<Error>: CGContextSetFillColorWithColor: invalid context 0x0
<Error>: CGContextSetStrokeColorWithColor: invalid context 0x0
<Error>: CGContextGetCompositeOperation: invalid context 0x0
<Error>: CGContextSetCompositeOperation: invalid context 0x0
<Error>: CGContextFillRects: invalid context 0x0

...


4

0 に答える 0