2

iPhoneとiPadのユニバーサルアプリを作っています。テキストが大きすぎる場合は、選択したポイントサイズに縮小する必要があることを定義するオプションがあることは知っていますが、テキストが iPad に表示されている場合は、テキストを上に拡大する必要があります。それは可能ですか?サイズが 18 ポイントのラベルがあります。テキストの長さを考慮すると、これは iPhone のほぼ全幅を占めます。しかし、iPad では、画面のサイズが大きくなるため、これは当てはまりません...

お時間をいただきありがとうございます。

4

2 に答える 2

2

ユニバーサルアプリでも同じ問題がありました。

Interface Builder ですべてのコンポーネントを直接スケーリングするように自動サイズ設定パラメーターを設定しましたが、新しく与えられた画面スペースを確保するためにフォント サイズをスケーリングしていませんでした。

各ビューの を以下のコードで更新することになりましたviewDidLoad。基本的には、ビューのコンポーネントを繰り返し処理し、すべてのラベルの pointSize を 2 倍にします (ボタンの場合も同様です)。

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    for (UIView *component in self.view.subviews) {
        if ([component isKindOfClass:[UILabel class]]) {
            UILabel *labelToUpdate = (UILabel *) component;
            [labeltoUpdate setFont:[labelToUpdate.font fontWithSize:labelToUpdate.font.pointSize*2]];
        }
    }

アプリは現在、iPhone から iPad にうまくスケールアップしています。

于 2012-01-24T17:22:02.820 に答える
1

メソッドでループできます:

- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode

2 行を占める一致が得られるまで、以前の font-size を使用します。イディオムを使用して iPad の特定のサイズを定義する方が、より迅速で簡単なようです。

于 2011-04-24T20:26:50.637 に答える