1

画面全体に多くの UILabels を持つ iPhone アプリがあります。ストーリーボードを使用しています。私の質問はこれです。設定画面のボタンまたはスライダーを使用して、アプリ内のすべてのラベルのフォント サイズを変更するにはどうすればよいですか? また、テキストが画面に対して大きくなりすぎるため、最大サイズがあることも望んでいます。

ありがとう!

4

2 に答える 2

2

これを試して:

-(IBAction)sliderValueChanged:(UISlider *)sender
{
      CGFloat maxFontSize = 24.0;
      CGFloat minFontSize = 8.0;
      CGFloat sliderValue = sender.value;

      if ((sliderValue < maxFontSize) && (sliderValue > minFontSize)) {
              label1.font = [UIFont boldSystemFontOfSize:sliderValue]; 
              label2.font = [UIFont boldSystemFontOfSize:sliderValue]; 
              label3.font = [UIFont boldSystemFontOfSize:sliderValue]; 
      }
}

このコードはテストしていませんが、うまくいくと思います..お役に立てば幸いです。

于 2013-01-06T03:22:03.213 に答える
1

良い。これを行う素晴らしい方法はありません。手っ取り早い近道を探しているなら、あなたは運が悪いです。各 viewControllers メソッドで実行できるメソッドを作成する必要がありますがviewDidLoad:、最初にこれを行います。

まず、アプリのどこかにスライダーがあります。スライダーの範囲が 1 ~ 5 であるとします。1 より後のすべての値について、後で参照できる場所に int を保存します。どのファイルでも構いません。NSコーディングを参照してください。基本的に、この場合は 5 という数を取り、1 を引いてそれを保存します。したがって、ユーザーが 5 を選択した場合、4 を節約できます。

さて、各コントローラー viewDidLoad には、次のことを行う同様のメソッドがあります。

保存した int 値を取得します。次に、基本テキスト サイズを取得し、保存した数値を追加します。後で CGFloat として必要になります。私はそれを使用する方法について肯定的ではありませんが、あなたはそれを見つけることができます.

次に使用します。

[label1 setFont:[UIFont fontWithName:@"Name Of font" size:<#(CGFloat)#>]]

すべての UILabels でそれを使用する必要があります。

他に何か必要な場合はお知らせください。

于 2013-01-06T02:53:50.343 に答える