1

私は周りを見回したが理解できない問題を解決しようとしています。UILabelコントロールの中にコントロールがありUIScrollViewます。ラベルの高さを、scrollviewそれが含まれる の高さに設定しました。次に、ラベルを埋めるテキストの正しい高さを (動的に) 決定する必要があります。そのため、高さが常に、scrollViewラベル内のテキストの高さが一致し、テキストが切り捨てられないように幅が拡張されます (下の画像のように)。

sizeToFit、のようなことを試しましconstrainedSizeたが、適切に動作させることができませんでした。このようなことを達成する方法について何か指示はありますか?

ここに画像の説明を入力

4

3 に答える 3

0

テキストを全幅と全高に埋めたいと思っていることに気づきました。テキストにそうさせるのはおそらく難しいでしょう。テキストの正確な境界矩形を直接設定する方法はありません。フォントはポイント サイズとしてのみ設定できます。多かれ少なかれ固定の縦横比でテキストをスケーリングします。

ラベルの変換プロパティを使用して、目的を達成できるはずです。まず、固定サイズのラベルを作成し、テキストがフレームいっぱいになるようにフォントを選択します。(テキストが異なる場合は、もう少し複雑になります。 を使用[text sizeWithFont:font]して適切なサイズを取得し、そこからラベル フレームを設定します。)

ラベルのサイズがスクロール ビューのサイズと一致しないとします。たとえば、ラベルは 100x10 で、スクロールビューは 200x15 です。ラベルのフレームを 200x15 に設定すると、必要な効果が得られません。ラベルは大きくなりますが、ラベル内のテキストは同じサイズのままです。ただし、これを行うと

label.transform = CGAffineTransformMakeScale(2.0, 1.5);

次に、ラベル全体とその内容が引き伸ばされます。親ビュー内で正しく配置されるように、ラベルの center プロパティを調整する必要がある場合もあります。毎回これを正しく行うには、コードで計算を行う必要があります。

于 2013-06-10T04:08:38.863 に答える