0

肝心なのは、iMessage が持つ UI を再現しようとしているということです。ラベルの場合: そのタイプのテキストの特別なパディングにより、カスタム UILabel を作成しました。drawTextInRect の下のコードは次のとおりです。

[super drawTextInRect:UIEdgeInsetsInsetRect(rect, UIEdgeInsetsMake(0, 15.0, 5.0, 15.0))];

今のところミステリーはありません。

私のセル(そのラベルを含む)が高さを計算しなければならないときに問題が発生します。Label は、次のようにラベルに丸め効果を与えます。

cell.message.layer.cornerRadius = 18;
[cell.message sizeToFit];

どうやら、そのラベルの適切な高さと幅を取得できません。私は sizeToFit を使用しています。次に、「sizeWithFont:」(iOS 7 で非推奨) と「boundingRectWithSize:」で可能なサイズを測定します。テキストが適切に表示される唯一の方法は、計算が行われた後に、高さと幅に不確定な量のサイズを手動で追加することです。

私が得ることができる最高のものは、見栄えは良いかもしれませんが、まだいくつかの問題があり、テキストを適切に描画しない画面です.

リンクには、一部の画面が正しく表示されない画面があります。

4

1 に答える 1

0

他の人のコードを見てわかった唯一の答えは、ある時点で文字サイズに基づいて独自の計算を行っているということです。

この問題のチェックがある人: https://github.com/jessesquires/MessagesTableViewController

それは私が見つけた唯一のソースでした。最後に、場合によってはboundingRectWithSizeが十分ではありませんでした。

于 2014-01-10T09:28:40.357 に答える