2016-07-21 4 views
2

私はUIButtonの中に文字 '6'を収めようとしています。そのため、プログラムが小さな画面のデバイスで実行されたときにフォントが自動的に縮小され、文字6がすべての面から内側になります。ボタン内のテキストに合わせてフォントサイズを変更しますか?

同じ問題を解決するいくつかのスレッドが見つかりましたが、何らかの理由でそれらが私にとってうまくいきません。私が見つけたいくつかのスレッドがあった。

私は、次の2つのコード・シーケンスを試してみましたが、どれも仕事を得ない:

どうすればいいですか?

1:

self.sixButton.titleLabel!.numberOfLines = 0; 
self.sixButton.titleLabel!.adjustsFontSizeToFitWidth = true; 
self.sixButton.titleLabel!.lineBreakMode = NSLineBreakMode.ByWordWrapping 

2:

self.sixButton.titleLabel!.minimumScaleFactor = 0.5; 
self.sixButton.titleLabel!.numberOfLines = 0; 
self.sixButton.titleLabel!.adjustsFontSizeToFitWidth = true; 

3:上記しかしself.sixButton.titleLabel!.numberOfLines = 1;と同じ。

Xcode 7.3.1でSwift 2.2を使用しています。

設計時に

ボタンの絵:

enter image description here

ボタンの絵実行時:私はどうなるのか

enter image description here

+0

こんにちは。 titleLabelのフォントサイズはどのくらいですか? –

+0

120(フォントはVerdana)。フォントを自動的に大きくして、自動的に縮小するかどうかを確認しました。明らかなように、それは縮小されませんでした。 – Ahmad

+0

あなたはプログラム的にここで手に入る前にサイズを計算することができます:http://stackoverflow.com/questions/19128797/calculating-uilabel-text-size – Farini

答えて

1

はの大きさを測定しています所望の範囲に収まるサイズになるまで、より小さなフォントサイズで「6」を使用し、そのサイズを使用します。

+0

これは最も明白な方法ですが、すべてのロジックを自動化する方法があるのだろうかと思います。 – Ahmad

+0

私は理解します。私は_built-in_の方法がないことを示唆しています。もちろん、コードを書くとロジックは自動化されます。それがコードです。:) – matt

+0

しかし、あなたがやっていることと反対のことをするのがもっと普通です:テキストを目的のフォントとサイズに設定し、ボタンを自分自身に合わせてサイズを変更させます。結局のところ、それがやりたいことです。 – matt

0

これに対する私の解決策は、一緒に機能するラベルと不可視ボタンを持つことです。不可視ボタンはラベルの上にあります。ラベル内のテキストの動作は、私の経験ではボタンの動作よりも柔軟性が高く、予測可能です。これは恐らく最も鮮明な解決策ではありませんが、優れた効果を発揮し、実装するのは苦労します。ボタンとラベルの位置を揃えるように制約を設定する必要があります。

関連する問題