UITableView
имеет сложную структуру кэширования, реализованную для повторного использования ячеек по мере необходимости, потому что дорого воссоздавать базовые буферы для управления рисованием. Изменение высоты ячейки потребует перераспределения этих буферов, и вы потеряете производительность, полученную от механизма кэширования.
Лучшей реализацией было бы разделение выделенных ячеек на группы по высоте и повторное использование ячеек в соответствии с их требованиями к высоте. Таким образом, нет необходимости перераспределять буферы, и вы получите ожидаемую производительность от UITableView
.