0

対処したい基本的な質問があります。ユニバーサルアプリはほぼ完成しました。iPad画面(ラベル、ボタンなど)のUIコントロールを特別にカスタマイズする必要があると言われました。したがって、たとえば、私のxibsの1つにあるviewDidLoadイベントに次のコードがあります。

if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
{
    [_lblRandomDisplay setFont: [UIFont fontWithName: @"Helvetica Neue" size:100]];
}
else
{
    [_lblRandomDisplay setFont: [UIFont fontWithName: @"Helvetica Neue" size:250]];
}

ここで、_lblRandomDisplayはUILabel IBOutletプロパティであり、iPadのフォントを増やし、iPhoneのフォントを減らします。これはiPadの画面にアプローチする方法ですか、それともiOSはiPadで表示したときに画面を自動的に拡大縮小しますか?補足として、xibファイル名にfilename〜iphone.xibおよびfilename〜ipad.xibという名前を付けました。これは、シミュレーターで選択されたデバイスに基づいて正しくロードされます。

これらの行には、iPhone用に設計したUITableViewsを使用し、NSArrayからプログラムでデータをロードする設定画面(設定バンドルを使用しない)があります。settings〜ipad.xib(settings〜iphone.xibからコントロールをコピー)を使用してiPadにロードした場合、iPad専用の行の高さを調整して大きく表示していません。iPadでは画面にOKと表示されますが、小さく見えます。これは正しいアプローチですか、それともこれにアプローチするための最良の方法は何ですか?

お知らせ下さい。

4

1 に答える 1

0

画面サイズに合わせてUIControlsをカスタマイズするために与えられたアドバイスは、間違っているようです。UIControlのサイズ、および一般的なテキストサイズは、すべてのデバイスで同じままである必要があります。これらのアイテムは、読みやすさとタッチしやすさに適したサイズで設計されており、どちらも画面サイズとは関係ありません。

iOSはこれを念頭に置いて設計されています。iPadとiPhoneのxibsまたはストーリーボードを使用してユニバーサルプロジェクトを作成すると、デバイスに関係なく、ユーザーインターフェイスウィジェットが同じピクセル/ポイントサイズであることがわかります(簡単にするために、ここではRetina /非Retinaの区別を無視しています)。たとえば、標準ボタンのデフォルトサイズは73 x 43で、どちらの場合もフォントサイズは15ptです。ナビゲーションバーは、両方のデバイスで44ピクセル/ポイントの高さです。これはあるべき姿です。iPhone、iPad mini、またはiPadでの読み取り距離がほぼ同じであると仮定すると、テキストサイズを調整する理由はありません。iPad用に再設計するという考えは、同じ情報のより大きなバージョンではなく、1つの画面でより多くの情報を取得できるということです。

iOSが「画面を拡大縮小する」状況は2つあります。

  • iPhone専用アプリを作成してiPadで実行する場合です。次に、2倍のサイズで実行するユーザーオプションがあります。この場合、フォントサイズを含むすべてが拡大されますが、これはピクセル倍増によって行われるため、効果は大きくぼやけます。それを見てください-そしてあなたはこれがまさにあなたがこのように設計 すべきでない理由であると理解するでしょう。

  • iPhoneとiPadの両方に単一のxib/ストーリーボードを使用し、自動レイアウト(ios6 +)または自動サイズ変更マスク(ios5-)を使用して、さまざまな画面サイズに合わせてレイアウトを自動調整する場合。この方法は、設定に応じて、ビューの画像コンテンツのサイズを比例的に変更できますが、テキストコンテンツのサイズを動的に変更することはできません。必要に応じて、コードで調整する必要があります。これはとにかくアプリを設計する良い方法ではありません。これまでと同じように、iPhoneとiPad専用のデザインを別々のxib/ストーリーボードで作成することをお勧めします。

iPadが「小さく見える」と言うと、大画面で失われるとUIが小さく見えると思いますが、答えはデータのサイズを大きくするだけでなく、レイアウトを再検討することです。各画面により多くのデータを収めます。そのため、iPadではAppleがSplitViewControllerを提供し、ContainerViewControllerのパターンを導入しました。

グラフィックデザインの目的でビューの比例サイジングの関連する、しかし別の問題も提起しているのではないかと思います(UIコントロールラベルの通常のサイズではなく、100および250ptのフォントサイズについて言及しています)。アプリの外観を画面に合わせて拡大縮小したい場合があります。これは、さまざまなウィンドウサイズに対するいわゆる流動的なWebデザインアプローチに少し似ています。たとえば、iphone画面全体に表示される巨大な文字「A」に基づくグラフィックデバイスがあり、その文字を同様にipad画面全体に表示したい場合があります。この場合、コード例のようにフォントサイズを設定する必要があるかもしれません。

さまざまなデバイスのテーブルセルの行の高さを変更しないことで、確かに正しいことを行っていますが、画面が大きい場合は、もちろんテーブルの高さを大きくして、ビュー内により多くのテーブルセルを収容できます。

問題の詳細を十分に投稿していないため、これらのコメントはすべて少し一般的です。多くの場合、1枚か2枚の写真を投稿すると便利です...

于 2013-02-26T04:22:02.597 に答える