iOS 5 で。
最初にペン先に配置された UILabel 要素があります。x の配置を固定したままにしたい。1行でも2行でもいいです。3 行以上の場合は、改行設定を使用して省略記号を表示する必要があります。
私はnumberOfLines
プロパティを使用し、-sizeToFit
UILabel のnumberOfLines
プロパティを 0 に設定すると、テキストによっては十分なスペースがなく、呼び出し後に 2 行目に折り返されることが正しく認識されますが-sizeToFit
、まれに、行が 3 行に伸びるほど長い場合があります。 3 行が表示されますが、これは望ましくありません。プロパティを 2に設定numberOfLines
すると、実際には全体が 1 行に引き伸ばされ、ペン先に設定された最初のフレームがより広くなるように引き伸ばされます。
CGRect titleFrame = [[self titleLabel] frame];
[[self titleLabel] setNumberOfLines:0];
[[self titleLabel] setText:newProductTitleText];
[[self titleLabel] sizeToFit];
CGRect newTitleFrame = [[self titleLabel] frame];
CGRect は、事後に計算できるようにするためだけに存在します。したがってnumberOfLines
、0 に設定すると機能し、フレーム内の元の origin.x は変更されず、長いテキストは複数の行に分割されますが、2 行に制限されることはありません。プロパティを 2 に設定numberOfLines
します。これは、Apple ドキュメントを読むときに
このプロパティは、ラベルのテキストを境界の四角形に合わせるために使用する最大行数を制御します。このプロパティのデフォルト値は 1 です。上限をなくして必要な数の行を使用するには、このプロパティの値を 0 に設定します。
これを 2 に設定しても機能するはずです。sizeToFit
すべてのテキストに合わせて拡大する場合は正の X 方向と Y 方向に拡大することを期待しますがnumberOfLines
、0 以外に設定すると負の X 方向に拡大します。
ETA: 「オートサイズ」ストラットは、最小 x,y で固定するために上部と左側に設定されます。
洞察をありがとう。