views:

362

answers:

1

Hi all. 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.

+3  A: 

You can subclass UITableViewCelland 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(...);    
}
Felix
thanks felix. That works perfectly.. :-)
Ben Clayton
p.s.: you shouldn't do anything else than changing frames here. if you want to change fonts(izes) you should do this when creating/loading the cell.
Felix
yes - that makes sense. Cheers!
Ben Clayton