Я бы добавил к ответу elpri, что вам не нужно проходить через все трудности создания собственного подкласса UITableViewCell.Вместо этого вы можете использовать теги, но общий подход верен.
- Рассчитайте размер фрейма, ограничив его максимальным размером, используя
sizeWithFont:constrainedToSize:lineBreakMode:
- Установите ширину / высоту вашей UILabelкадр с использованием
calculatedSize.width
и calculatedSize.height
При использовании тегов это будет выглядеть следующим образом:
#define NAMELABEL_TAG 1
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ACellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
UILabel *nameLabel = (UILabel *)[cell viewWithTag:NAMELABEL_TAG];
// the rest of your code to resize the frame can go here...
}
Также убедитесь, что стойки и пружины правильно установлены в конструкторе интерфейса, чтобыавтоматически разворачивается при повороте устройства (при условии, что это именно то, что вам нужно).