1. ホーム
  2. ios

[解決済み] UILabelが切り捨てられたかどうかを確認するには?

2022-09-08 19:02:51

質問

私は UILabel があり、iPhone や iPad でアプリが縦長か横長かによって長さが異なります。テキストが長すぎて 1 行に表示できず切り捨てられる場合、ユーザーがそれを押して全文のポップアップを表示できるようにしたいのです。

が表示されているかどうかを確認するにはどうしたらよいでしょうか。 UILabel がテキストを切り捨てているかどうかを確認するにはどうしたらよいでしょうか。それは可能なのでしょうか?今、私はちょうど私がどんなモードであるかに基づいて異なる長さをチェックしていますが、それは超うまく動作しません。

どのように解決するのですか?

を計算することができます。 の文字列の幅を計算することができます。 を計算し、その幅が label.bounds.size.width

NSString UIKitの追加機能 には、特定のフォントで文字列のサイズを計算するためのいくつかのメソッドがあります。 しかし、ラベルにminimumFontSizeを指定すると、システムがそのサイズまで文字列を縮小してくれるようになります。 を使いたいと思うかもしれません。 sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode: を使用するとよいでしょう。

CGSize size = [label.text sizeWithAttributes:@{NSFontAttributeName:label.font}];
if (size.width > label.bounds.size.width) {
   ...
}