2016-09-07 7 views
2

複数行(numberOfLines = 0)の行に収まらないときにテキストを折り返すのをやめようとしていますが、いくつの文字がラベルの行に収まるので、残りの部分を切り捨てて、 "\ n"を使って次の文字列を次の行に追加することができます。私はどのように多くの文字が私のフォントとラベルのサイズとサイズ(方法でモノスペースのCourier 17.0)で各行に収まるかを調べるでしょう。また、画面サイズ/サイズクラスのように変更することができるので、ラベルのサイズを動的にすることができます。これが必要です。私はライン上 に合わせてどのように多くの文字を知っている必要がある理由が起こるとしたいのUILabelの1行に収まる文字数を計算する

例:ラベルの

var lineOne = "Too long" 
var lineTwo = "Also too long" 
myLabel.text = lineOne + "\n" + lineTwo 
// Then I would calculate how many characters can fit on a line and alter the two strings accordingly 

出力(ラベルの文字制限は3のようであることを起こるふり):私はちょうど私が計算できるようにする必要があります別のものを実現

Too 
Als 

は、多くの行がラベル(高さ)に収まることができる方法であればnumberOfLines = 0

答えて

0

プログラムで行う必要はありません。 ラベルを選択し、属性インスペクタで Line BreakCharacter Wrapに変更します。 次に、Linesを許可したい最大行数に変更します。

さらに、高さと幅の制​​約をそれに応じて追加できます。次に使用する<labelOutlet>.sizeToFit();

+0

これは、行を塗りつぶすように各文字列を切り取る場所を知るという問題を解決しません。なぜなら、この方法では、\ nラインが詰まっていて、まだラップしていないからです –

関連する問題