2

私はユニバーサルアプリの初心者ですので、私を助けて、これができるかどうか教えてください.およびiPadグループであり、実行時に、iPhoneまたはiPadのどちらであるかをデバイスを識別しています。以下の方法を使用しています

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        myiPad_View *ipadObj = [[myiPad_View 割り当て]init];
        [self.window addSubview:ipadObj.view];

    }
    そうしないと
    {
        myiPhoneView *obj = [[myiPhoneView alloc]init];
        [self.window addSubview:obj.view];
    }

今、クエリは、上司がこれについて頭を悩ませていることです。彼は、クラスを1つだけ記述して、実行時にアプリがiPhoneまたはiPadデバイスまたはシミュレーターで起動されるときに、ビューコントローラーがそれに応じてフレームを調整することを教えてくれます。上記の方法を使用してこれを行いましたが、このようにするとコードが増加し、大きな頭痛に苦しむ必要があるため、実際には彼は正しいですが、これに対する代替ソリューションを見つけていないため、これを言う前にできない 専門家のアドバイスを受けようと思った

4

3 に答える 3

1

私は3セットのクラスを持っています:

  • 基本クラス: これは、共有ロジックが入る場所です
  • iPhone クラス: UI を含む iPhone 固有のロジックがここに入る
  • iPad クラス: UI を含む iPad 固有のロジックがここに入る

基本クラスには可能な限り多くの機能を持たせていますが、ロジックが分離されている場合は、別個のクラスを使用する方がはるかに簡単です。例外を探してコードを掘り下げるのは面倒です、IMO。

このブログは役に立ちました(私のものではありません)

于 2011-05-21T05:45:18.680 に答える
1

上記の方法は、実際には、一部のアプリでもデバイスを特定する方法です。

実は最近、この問題について少し記事を書きました。

以下も使用できます。

#define IDIOM    UI_USER_INTERFACE_IDIOM()
#define IPAD     UIUserInterfaceIdiomPad
#define IPHONE   UIUserInterfaceIdiomPhone

if ( IDIOM == IPAD ) 
    NSLog(@"Device is iPad.");
else 
    NSLog(@"Device is iPhone or iPod touch.");

また

if ( [[[UIDevice currentDevice] model] isEqualToString:@"iPod touch"] ) 
{
    NSLog(@"Device is an iPod touch");
    /*  same goes for "iPhone", "iPad" etc.  */
}
于 2011-05-21T06:16:11.490 に答える
0

問題じゃない 。ユニバーサルアプリを作成する必要があります。

ファイル--->新しいプロジェクト--->windowsapplication

次に、製品を選択しますUniversal

于 2011-05-21T05:58:31.553 に答える