多くの人が、デバイスごとに異なる .xib を使用することに苦労しています。
「自動レイアウト」が機能しない場合(私には機能しません。サイズと画像の配置が台無しになります)、ユーザーが使用しているデバイスを手動で検出する必要があります。
これを行うための非常に多くの異なる方法を見てきましたので、最も簡単な方法を共有すると思いました. ( 私の意見では )
多くの人が、デバイスごとに異なる .xib を使用することに苦労しています。
「自動レイアウト」が機能しない場合(私には機能しません。サイズと画像の配置が台無しになります)、ユーザーが使用しているデバイスを手動で検出する必要があります。
これを行うための非常に多くの異なる方法を見てきましたので、最も簡単な方法を共有すると思いました. ( 私の意見では )
だから答え:
- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle {
if ([[ UIScreen mainScreen ] bounds ].size.height == 568 ) {
nibName = [NSString stringWithFormat:@"%@_568", nibName];
}
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
nibName = [NSString stringWithFormat:@"%@_iPad", nibName]; {
}
if (self = [super initWithNibName:nibName bundle:nibBundle]) {
}
return self;
}
最初のステートメントは、お使いのデバイスに iPhone 5 スクリーンがあるかどうかをチェックします。
2 つ目は、iPad を使用している天気をチェックします。
3 番目は、iPhone 4s 以前の通常の xib を返します。
これを機能させるには、3 つの異なる XIB を作成する必要があることに注意してください。すべて異なる接尾辞が付いています。
ViewController.xib
ViewController_568.xib
ViewController_iPad.xib