2017-10-18 7 views
1

私のアプリには高さよりも大きなフォントサイズが与えられることがあります。これは、いくらか複雑なアーキテクチャとレイアウトコードと関係がある。通常、私は大きなフォントに対応するためにラベルの高さを上げますが、それは私のシナリオでは非常に難しく、むしろ避けたいと思います。フォントサイズがラベルの高さよりも大きい場合にUILabelがテキストを切り取らないようにする

次の論理的なことは、テキストサブレイヤがラベルの境界をオーバーフローできるように、clipsToBoundsをオフにすることです。残念ながら、テキストがまだクリップされているので、この場合は効果がありません。

何か不足していますか?

+0

ラベルの内容圧縮抵抗の優先順位を上げるのはどうですか? –

+0

また、 'label.layer.maskToBounds = false'を確認する必要があります – Wez

+0

希望の動作は何ですか? – Hexfire

答えて

0

font.lineHeightからフォントの高さを取得し、行の高さがラベルの高さより小さくなるまでフォントサイズを小さくする必要があります。

UILabelのドキュメントを見てみると
+0

問題は、ヴィンスです。私はフォントの高さを減らしたくありません。大きなフォントにしたいのですが、それに対応するためにラベルの高さを上げたい場合がもっとあります。私の質問で言ったように、私の状況ではこれはやりにくいです。したがって、レイヤークリッピングベースのソリューションを探しています。 –

+0

ああ、私はあなたがラベルのサイズを増やしたくないのを見ましたが、あなたはまた、フォントサイズを減らしたくないとは見ませんでした。もう1つの可能性は、テキストを取り込んで適切なサイズ変更を行う既存のラベルの中央に2番目のラベルを置くことです。このようにして、元のラベルは画面レイアウトのプレースホルダーになります。 (前述のとおり) –

0

:明示的に含む大きさに、このメソッドによって返された矩形を増やすことでlimitedToNumberOfLines :):私はあなたが方法textRect(forBoundsを上書きする必要があると思う

https://developer.apple.com/documentation/uikit/uilabel/1620545-textrect

ラベルの境界ではなく、ラベルの文字列。

(このソリューションはもちろん、サブクラスにあなたを必要としない。)

お役に立てば幸いです。

+0

これは興味深い考えです。試してみましょう! –

+0

私はAsyncDisplayKitを使用しており、ラベルが抽象ビューでASTextNodeにラップされているため、UILabelオブジェクトをサブクラス化する機能はありません。 –

関連する問題