Также вам необходимо реализовать метод UITableViewDelegate:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
И он возвращает общую высоту ячейки, скорректированную для текстового поля с измененным размером.
Еще одно примечание - Size to Fit должен действительно работать, если у вас есть число строк, равное 0, как упомянуто ранее. Он вернет вам размер с увеличенной высотой, чтобы вместить завернутый в слово текст, заданный в метке, и ширину, равную ширине оригинальной метки.
Это вам не поможет, так как вам нужно получить размер в heightForRow до получения ячейки, так что вам лучше рассчитать необходимую высоту (и очень вероятно, кешировать это вычисление, чтобы не замедлять рендеринг таблицы)