1

多くの人が、デバイスごとに異なる .xib を使用することに苦労しています。

「自動レイアウト」が機能しない場合(私には機能しません。サイズと画像の配置が台無しになります)、ユーザーが使用しているデバイスを手動で検出する必要があります。

これを行うための非常に多くの異なる方法を見てきましたので、最も簡単な方法を共有すると思いました. ( 私の意見では )

4

1 に答える 1

2

だから答え:

- (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

于 2013-07-17T08:39:27.447 に答える