1

私はユニバーサルiPhone/iPadアプリを持っています。メインメニューには、外の現在の気象条件を示すUIImageとUILabelがあります。UILabelは現在の温度を示します。

両方のバージョンで同じXIBを使用しています。使用しているすべてのグラフィックを高解像度で作成したため、iPadに適したスケールになります。

iPhoneバージョンでは、UIImageのすぐ下で、ラベルが中央に配置されます。これが私が望んでいることです。iPadにロードすると、UIImageは大きく大きくなりますが、ラベルは画面の左側の同じ位置にとどまり、大きな画像の下の中央に配置されません。私はそれを中心に置くためにIBで多くの異なることを試みました、そして私はそれを得ることができません。

iPadにロードしたときにテキストサイズを大きくすることも可能ですか?

これが私が話していることを描写するためのいくつかの画像です:

iPhoneバージョン: http: //img855.imageshack.us/i/iphonei.png/

iPadバージョン: http: //img163.imageshack.us/i/ipadh.png/

4

1 に答える 1

2

ラベルの問題についてはわかりませんが、iPad のテキスト サイズを変更するには、iPad を使用しているかどうかをテストする関数を作成し、それを使用して必要に応じてコードを変更します。これは、仕事をするための関数です。

BOOL isIPad()
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    {
        return YES;
    }
    return NO;
}

そして、条件付きコードを書くだけです。例えば:

UIButton *infoCircle;

    if (isIPad())
    {
        infoCircle =  [UIButton buttonWithType:UIButtonTypeInfoDark];
    }
    else
    {
        infoCircle =  [UIButton buttonWithType:UIButtonTypeInfoLight];
    }

あなたの場合、ラベルのフォントサイズを次のように調整する必要があります。

if (isIPad())
{
      [[self mainLabel] setFont: [UIFont systemFontOfSize: 18.0]];
}
else
{
      [[self mainLabel] setFont: [UIFont systemFontOfSize: 14.0]];
}

Interface Builder に不満がある場合は、同じアプローチを使用して、プログラムで UILabel の位置を変更することもできます。特にインターフェースが落ち着いたら、これはより速い場合があります。

于 2011-03-11T00:18:32.023 に答える