私はpopOverController
のiPhoneとiPadを以下のコードで表示しています。iOS:AutolayoutとpopOverControllerの問題(可能性のあるXcodeのバグ)
ViewController *vc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
if ([UIDevice currentDevice].userInterfaceIdiom ==
UIUserInterfaceIdiomPad) {
vc.preferredContentSize = CGSizeMake(296, 476); //your custom size.
} else {
vc.preferredContentSize = CGSizeMake(252, 436.5);
}
vc.modalPresentationStyle = UIModalPresentationPopover;
vc.popoverPresentationController.delegate = self;
vc.popoverPresentationController.sourceView = self.view;
vc.popoverPresentationController.sourceRect = CGRectMake(screenWidth/2, self.view.height/2, 1, 1);
[self presentViewController:vc animated:YES completion:nil];
UIPopoverPresentationController *popOverController = vc.popoverPresentationController;
popOverController.permittedArrowDirections = 0;
しかし、クラスサイズの問題が発生しているようです。 iPadのデバイスを使用していても、iPhoneのサイズは使用されていて、iPadのサイズはまったく使用されていないようです。インターフェイスビルダでは、選択されているデバイスに応じてボタンに2つの異なるサイズが表示されます。
編集:例えば、ボタンを持つviewcontroller.xibがあります。実際のデバイスに応じて2つの異なるボタンサイズがあります。 iPhoneの場合、ボタンの寸法は50 x 50です。iPadの場合、寸法は430 x 430です。インターフェースビルダーでは、これが正しく表示されます。ただし、iPadデバイスを使用している場合、ボタンは430 x 430と仮定すると50 x 50と表示されます。
「サイズ」とはどういう意味ですか? iPhoneでは、ポップオーバーは表示されません。フルスクリーン表示のView Controllerが表示されます。だから、どのように "サイズ"をすべきか知っていますか?スクリーンショットを表示してください。 – matt
たとえば、ボタンを持つviewcontroller.xibがあります。実際のデバイスに応じて2つの異なるボタンサイズがあります。 iPhoneの場合、ボタンの寸法は50 x 50です。iPadの場合、寸法は430 x 430です。インターフェースビルダーでは、これが正しく表示されます。ただし、iPadデバイスを使用している場合、ボタンは430 x 430と思われる場合は50 x 50と表示されます。また、iPhoneでもポップオーバーがあります。 – Weakman10122
さて、私は今理解しています。 – matt