Я знаю, что этот вопрос задавали сотни раз раньше, но он никогда не был решен (или, по крайней мере, так, как мне хотелось бы). У меня довольно сложная настройка UITableViewCell. cell.backgroundView
загружается из подкласса UIView, который использует справедливый бит CoreGraphics и CoreText. Код изобилует кодом CTFramesetterSuggestFrameSizeWithConstraints
, поэтому я могу использовать дубликат класса в методе heightForRowAtIndexPath
.
Я думаю, что я могу решить это, создав NSMutableDictionary с индексом в качестве ключа и высотой в качестве значения. Но тогда я столкнулся с проблемой вызова heightForRowAtIndexPath
. Я считаю, что я могу решить эту проблему, угадывая высоту ячейки, а затем, когда подкласс UIView ячейки завершил рендеринг, используйте делегирование, чтобы установить высоту ячейки.
Но это оставляет мне проблему, как, черт возьми, я делегирую это? И, как я могу предотвратить прокрутку от крайне изменчивости? поскольку ячейки будут созданы и изменены в течение секунды.