2016-09-02 14 views
0

私は可変長のテキストを持っています。私は、テキストを表示するボタンのサイズを調整したい。テキストが多すぎる場合もありますが、その場合はサイズを一定の幅に制限します。どのようにUIButtonのためにそれを行うことができます。上記テキストに基づいてUIButtonサイズを調整する最も簡単な方法

enter image description here

長いへの道であるテキストです。たぶん40文字しか表示しません。

私は範囲を使用しようとしていますし、私は以下の取得:

enter image description here

最終結果:私は、テキストの長さを測定するための変数を作成します

enter image description here

答えて

6

Autolayoutを使用して幅制約を追加し、幅制約の関係を定数以下(「最大幅」以下)に設定します。 UIButtonは、別の固定幅の制約や間隔の制約がない限り、テキストがmaxに収まるように自動的にリサイズする必要があります。

更新: これは、さまざまな画面サイズで機能するために、幅の制約を追加する代わりに、スーパービューに後続のスペース(右側)制約を追加します(たとえば)。次に、それを20ptsのように「それ以上」に設定します。これは、間隔が画面外に出ることなく可能な限り大きくなるように常に調整されることを意味します(幅はテキストに合わせて自動サイズされます)。

+0

私は最終結果を示すために元の質問を更新しました。途中に自動的に追加するのではなく、最後に "..."を追加する方法はありますか? –

+0

UIButtonの属性インスペクタに、lineBreakの設定があります。中央を切り捨てるのではなく、切り捨てを選択してください –

+0

ありがとう! 1つの最後の質問。私がそれを固定幅にすると、350と言うと、それはiPhone 5とiPhone 4にとってまだ大きすぎます。そのシナリオでは何ができますか? –

0

ボタンのフレームにその変数に特定の数値を掛けて割り当てます。テキストが特定の数(40文字の場合)以上の場合は、ボタンを高くして行数を0に設定して、次の行に渡します。 40文字に制限したい場合は、40文字以上の入力を防ぐ方法が必要です。

関連する問題