UITableView тормозит и прыгает при прокрутке

Я использую UITableView с динамическими ячейками. Каждая ячейка имеет несколько кнопок, изображение и метку. Ширина изображения равна ширине таблицы, а высота является переменной.

Я обновляю высоту изображения в cellForRowAtIndexPath с помощью функции... для соблюдения соотношения сторон. Метка может состоять из 1 или более строк.

Я использую heightForRowAtIndexPath для установки высоты ячейки. Я вычисляю его там и возвращаю значение.

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {

    let queficient = CGFloat(dataController.Data[indexPath.row].width) / self.view.frame.size.width

    let imgHeight = CGFloat(dataController.Data[indexPath.row].height) / queficient

    return 134 + imgHeight + heightForView(dataController.Data[indexPath.row].description)
}

Я не знаю, почему таблица немного тормозит и прыгает, когда я прокручиваю.


person Robert Constantinescu    schedule 29.09.2015    source источник


Ответы (1)


Если вы уверены, что отставание вызвано heightforRowAtIndexPath, почему бы вам не рассчитать высоту для каждой ячейки data/indexpath только один раз при изменении изображения?

вы должны просто вернуть dataController.Data[indexPath.row].calculatedCellHeight или что-то в этом роде

person Vlk    schedule 29.09.2015