2014-10-21 2 views
6

Я столкнулся с проблемой strance с uitableview. Когда-то, когда источник данных/numberofrowsinsection моего стола имеет 3 значения, cellforowatindexpath начинается с 0-1 вместо 0-0. может кто-то помочь мне найти возможные причины для этой проблемы. даже попытался распечатать журналы, но журналы были показаны для 0 -1 и 0 -2, но не для 0 -0. Это означает, что он не получает вызов для первой строки i.e 0 -0.indexpath.row начинается с 1 вместо 0

+0

положить методы делегата, что вы пробовали? –

+0

В чем проблема? – zaph

+0

Это произойдет только при попытке загрузить таблицу частично с помощью reloadRowsAtIndexPaths: withRowAnimatio или напрямую загрузить любой раздел. – iHulk

ответ

3

tableView:cellForRowAtIndexPath: вызывается как необходимо для отображения ячейки, если ячейка не будет отображаться, она не вызывается. Если строка 0 не отображается, ячейка-ячейка 0-0 не будет вызываться.

+1

, но в numberofrowsinsection я передаю значение как 3, Так как же он переходит непосредственно к 1 вместо начала с 0? – ravoorinandan

+0

И к моему сюрпризу это происходит в iOS8, но не в iOS7. Но я не думаю, что это должна быть проблема, это просто дикая догадка. – ravoorinandan

+0

Да, я согласен с тем, что Zaph, но представление таблицы способно отображать три ячейки, и точка не вызывается каким-либо способом, например reloadRowsatIndexpath, что заставляет его пропускать 0 и напрямую перемещаться в 1, когда таблица может отображать все три клетки. – ravoorinandan

3

Как указано в Zaph, tableView:cellForRowAtIndexPath: вызывается всякий раз, когда таблица хочет отобразить ячейку для заданного пути указателя, поэтому, если вы не получаете индексный указатель со строкой 0, это означает, что вы, вероятно, что-то делаете что предотвращает показ этой ячейки.

Мое первое предложение было бы изучить ваш метод tableView:heightForRowAtIndexPath: и 1) проверить, вызвано ли оно вызовом с номером пути индекса, равным 0, и 2) убедиться, что возвращается что-то> 0.

Тот факт, что вы видите его на iOS 8, не обязательно означает, что что-то родное сломано, но вместо этого может предположить, что некоторые из вашей логики, которые вносят вклад в вышеуказанные методы, зависят от изменений iOS 8. iOS 8 отбросил то, как я делал вычисления размера текста, поэтому, возможно, что-то менее очевидное, как результат, приводит к возврату высоты не более 0.

+1

Изменение высотыForRowAtIndexPath разрешило его для меня, спасибо! – jungledev

0

Вы можете сначала проверить количество разделов и количество строк. Если номер строки раздела возвращается 0, этот раздел не будет вызываться.

Смежные вопросы