UITableViewCellのラベルの位置を調整する 質問する

UITableViewCellのラベルの位置を調整する 質問する

UITableViewCellStyleSubtitle で UITableViewCell を使用しています。ただし、セルに使用している背景画像のせいで、detailTextLabel の配置場所が気に入りません。セル内で移動してサイズを変更したいのですが、何をやってもうまくいかないようです。

CGRect currRect = cell.detailTextLabel.frame;
cell.detailTextLabel.frame = CGRectMake(currRect.origin.x + 20, currRect.origin.y, currRect.size.width - 40, currRect.size.height);

このコードを tableView:cellForRowAtIndexPath メソッドと tableView:willDisplayCell:forRowAtIndexPath メソッドの両方に挿入してみましたが、どちらも機能しません。ラベルはそのままの位置に留まり、サイズも同じままです。

ラベルの他のプロパティ (textAlignment、backgroundColor、そしてもちろんテキスト自体) の調整は正常に機能します。

detailTextLabel を必要な場所に移動するにはどうすればよいですか?

これが問題になる場合(なぜ問題になるのかはわかりませんが)、この特定のセルには imageView.image および backgroundImage プロパティも設定されています。両方の画像が正しく表示されます。

ベストアンサー1

インデントとインデント レベルを使用してラベルを調整してみることもできます。

cell.indentationWidth = MY_DESIRED_WIDTH;
cell.indentationLevel = 1;

(インデントされていないセルの場合)

または、インデントされたセルの場合は次のようにします。

cell.indentationLevel = cell.indentationLevel + 1;

どちらもラベルをシフト/インデントする必要があります。

おすすめ記事