Alex Rivera | Logout

Adjusting the positions of the labels in a UITableViewCell

Asked 2009-08-20T02:47:50.703
22

I'm using a UITableViewCell with UITableViewCellStyleSubtitle. However, because of the background image I'm using for the cell, I don't like where the detailTextLabel is going. I want to move it and resize it within the cell, but nothing I try seems to work.

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

I tried putting this code into both tableView:cellForRowAtIndexPath and tableView:willDisplayCell:forRowAtIndexPath methods, but neither works. The label simply stays where it is, and the same size.

Adjustment of other properties of the label (textAlignment, backgroundColor, and, of course, the text itself) works correctly.

How to I get the detailTextLabel to move where I need to?

In case this matters (though I don't see why it should), this particular cell also has imageView.image and backgroundImage properties set. Both images display correctly.

Edit
Report

1 Answer

43

You could try and adjust the label with the indentation and indentation level:

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

(for unindented cells)

Or for indented cells just do:

cell.indentationLevel = cell.indentationLevel + 1;

Both these should shift/indent your labels.

answered 2010-11-02T17:54:56.863

Your Answer