3

UITableView一部のテキストのみを含むセルがいくつかあります。セル内のテキストはセルの中央に垂直に配置されていますが、使用されているフォントが原因で見栄えがよくありません。テキストが少し上にずれているように見えます。

テキストが実際にセルの中央 (垂直方向) に表示されるように、テキストのベースラインを調整する必要があります。

テキストは次のように設定されます。

cell.textLabel.text = //some text

私がこれまでに試したこと:

  1. frameラベルのプロパティを調整( cell.textlabel) - y 座標にオフセットを追加します。セルを再利用し、セルが表示される前にフレームが再計算されるため、うまくいきませんでした。
  2. UILabelの代わりにカスタムを使用cell.textLabelし、セルのサブビューとして追加します。UITableViewが編集モードに設定されている場合、これはうまく機能しませんでした- カスタムUILabelは赤のときにフレームを調整しませんでした - 削除アイコンが表示されました。
  3. cell.textLabel.attributedText属性の代わりに設定して、属性をcell.textLabel.text使用NSBaselineOffsetAttributeNameしてオフセットを設定しようとしました。ただし、XCode は他のすべての属性名を認識しますが、これはUse of undefined identifier NSBaselineOffsetAttributeName というエラーで認識されません。定数はどこにも非推奨としてマークされていませんが、iOS 6.0 SDK リリース ノートでは、互換性の問題により、このNSBaselineOffsetAttributeName属性は iOS 6 ではサポートされなくなっていることがわかりました。

表のセルに含まれるテキストにベースライン オフセットを適用する方法についての提案は大歓迎です。ソリューションは iOS SDK 6.0 と互換性がある必要があり、iOS SDK 7.0 との互換性があると便利です。

4

0 に答える 0