How to change the size of the labels on a UITableViewCellStyleValue2 cell? (UITableView iPhone)

iphone, uitableview

Solution

You can subclass `UITableViewCell`and still use `UITableViewCellStyleValue2`. You can then overwrite the layoutSubviews method to change the size of the labels:

- (void) layoutSubviews {
   [super layoutSubviews]; // layouts the cell as UITableViewCellStyleValue2 would normally look like

   // change frame of one or more labels
   self.textLabel.frame = CGRectMake(...);
   self.detailTextLabel.frame = CGRectMake(...);    
}

Problem

I'm using a UITableViewCellStyleValue2 cell in my UITableView in my app and I want the left column (the blue text - self.textField) to be much narrower than the default. I've tried setting the self.textField.bounds after creating the cell but this doesn't seem to work - looking in the debugger it appears the bounds haven't been set. Can I edit the default cell type in this way, or should I just make my own subclass of UITableViewCell? Thanks.

Original source