У меня была похожая проблема с пользовательским UITableViewCell, и я закончил загрузкой асинхронного изображения (как и вы) и установил его в imageView, предоставляемом Apple UITableViewCell (не в пользовательском imageView, добавленном как подпредставление).
Для метки, размер которой нужно было изменить (текст был длиннее, чем одна строка в портретной ориентации), я установил текст в текстовой метке по умолчанию, и он был изменен автоматически. У меня также была вторая метка, которая содержала дату (текст был коротким и не нуждался в изменении размера), и я добавил его как вспомогательное представление к представлению содержимого ячейки.
Первоначально я сделал то, что вы сделали в приведенном выше коде. Я настроил свои uilabels и добавил их в качестве подпредставлений, но обнаружил, что предупреждения об изменении ориентации не передаются им из tableView, поэтому в альбомной ориентации это не выглядело так, как я. ожидается ..
подробнее о UITableViewCell вы можете найти здесь UITableViewCell
в моей пользовательской ячейке UITableView у меня был метод, который настраивал данные для ячейки ... что-то вроде этого:
- (void) setData:(Feed *) dict
{
self.autoresizesSubviews = YES;
self.imageView.image = [UIImage newImageFromResource:@"noFeedImg.png"];
self.textLabel.highlightedTextColor = [UIColor whiteColor];
[[self textLabel] setOpaque:NO];
[[self textLabel] setBackgroundColor:[UIColor clearColor]];
[[self textLabel] setText:[dict feedTitle]];
[[self textLabel] setTextColor:[UIColor blackColor]];
[[self textLabel] setNumberOfLines:3];
[[self textLabel] setFont:[UIFont boldSystemFontOfSize:12]];
[self addSubview:dateLabel];
dateLabel.text = [dict publishDate];
dateLabel.frame = CGRectMake(self.contentView.bounds.origin.x + 125, 100, 175, 14);
self.URL = [dict feedURL];
[imageLoader loadImageFromURL:[NSURL URLWithString:@"http://www.google.com"] withCallbackTarget:self withCallbackSelector:@selector(setupImage:)];
}
в cellForRowAtIndexPath после создания ячейки:
FeedTableViewCell *cell = [[[FeedTableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
и после этого установите информацию, которая будет отображаться в ячейке:
[cell setData:[feedsList objectAtIndex:feedIndex]];
надеюсь, это поможет вам.