Я работаю над проектом iOS 5 с раскадными стенами и, таким образом, используя динамические прототипы ячеек таблицы в IB. В одном из представлений у меня есть табличный вид с ячейками переменной высоты, с высотой ячейки, вычисленной с высоты содержимого.Разделители UITableView неправильно рисуются путем повторного использования соты?
tableView:heightForRowAtIndexPath:
возвращает правильные значения для всех ячеек, когда сначала отображается представление таблицы. Все хорошо, когда прокручивается несколько элементов, но тогда что-то идет не так: фактические ячейки кажутся правильной высотой, включая их области касания, но их разделители отображаются в неправильных местах (внутри ячеек, а не между ними).
Из измерения размещения разделителя, похоже, что использование этой ячейки может иметь какое-то отношение. Сепараторы для первых трех ячеек отображаются правильно, но не четвертый. heightForRowAtIndexPath:
возвращает правильную высоту для него (125 пикселей в этом случае), а содержащиеся в нем подсмотры находятся в правильном месте. Тем не менее, разделитель отображается только на 108 пикселей от предыдущего разделителя, помещая его в область с высоким разрешением 125 пикселей ячейки.
Вот кикер: 108px - это высота первой ячейки таблицы, теперь из поля зрения и, вероятно, повторно используется. У меня нет определенных доказательств этого, но, похоже, что табличное представление игнорирует heightForRowAtIndexPath:
для этих ячеек и просто выводит разделитель в соответствии с высотой повторной ячейки.
Это не объясняет, почему куча более поздних, более коротких ячеек не является разделителем. Но это все, что я должен продолжать.
Есть ли обходной путь, настройка IB или что-то еще, что может помочь?
Я сдался. Я закончил отключать разделители от свойств вида таблицы и добавил 1px высокий вид в нижней части прототипа ячейки, чтобы действовать как разделитель. Теперь это по крайней мере выглядит хорошо. Я все равно хотел бы знать, почему это неправильно, так что ответы по-прежнему приветствуются. –
Просто с этой проблемой с табличным представлением переменной высоты тоже ... и я делаю все это программно. Ну, по крайней мере, мне не нужны строки, но это все еще запутывает:/ – cclogg
Просто подтверждая одно, вы используете разделители tableView или добавляете строку/UIView в качестве разделителя? –