4

iPhoneアプリを書きました。次に、インターフェイスをかなり変更し、高解像度の画像を追加して、iPadバージョンを作成しました。完璧な世界では、iPadバージョンを購入した人は誰でもiPhoneバージョンを無料で入手したいと思います(逆ではありませんが)。Appleにはそれを行う方法がないようです(そうですか??)、私の次のお気に入りの解決策は、iPadバージョンにiPhoneバージョンを何らかの形で含めることです。

iPadのバージョンを「ユニバーサル」に変換できることは知っていますが、アプリの顔がとても違うので、それは本当に苦痛のようです。私は多くのViewControllerを持っていますが、それらは2つのバージョン間でほぼ完全に異なります。いくつかの方法は同じですが、約30%にすぎません。これに沿った簡単な解決策はありますか?

  • デバイスがiPhoneまたはiPadかどうかを確認します

    • iPhoneの場合は、ファイルの1つのグループを使用します

    • iPadの場合は、別のファイルグループを使用します

前もって感謝します!

4

2 に答える 2

2

Xcodeで新しいプロジェクトを作成して、ユニバーサルアプリにすることを選択してください。Xcodeがデフォルトでレイアウトする方法では、iPadバージョンとiPhoneバージョンの間に明確な違いがあります。アプリの2つのバージョンは、必要に応じて類似または異なるものにすることができます。

さらに、を使用して、実行時に実行しているデバイスを確認できますUI_USER_INTERFACE_IDIOM()。現在、これの2つの値はとUIUserInterfaceIdiomPadですUIUserInterfaceIdiomPhone

于 2011-03-12T04:05:19.220 に答える
0

あなたが説明する「簡単な解決策」は、基本的にiOSがユニバーサルアプリをロードする方法です。

それを回避する他の本当の方法はありません。やりたいことを行うには、2つのプロジェクトをもう一度1つにマージする必要があります。

最初の問題は、クラスのいくつかの(多くの?)名前が両方のプロジェクト間で共通になることです。Xcodeの「リファクタリング...」機能を使用して、1つのプロジェクト(たとえば、古いのでiPhoneアプリ)のクラスの名前を変更してから、それらをマージすることで、苦痛を軽減できます。2番目の問題はInfo.plistです。正しい「メインnibファイルベース名」、正しいサポートされているインターフェイスの向き、アイコンファイルなどが、iPadとiPhoneの両方でそれぞれ正しい値に設定されていることを確認する必要があります。

于 2011-03-12T04:12:22.017 に答える