2014-11-21 5 views
0

У меня есть представление таблицы, в котором метод numberOfRowsInSection корректно возвращается по желанию пользователя. Но фактическое количество строк, которые появляются, меньше числа, возвращаемого numberOfRowsInSection. Клетки не являются статическими. Я не устанавливал никаких ограничений на количество строк. Я использую раскадровку, это может быть проблема с раскадрой. Любые вести?ios tableview: строки меньше числа, возвращаемого numberOfRowsInSection

Фрагмент кода:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

// Return the number of rows in the section. 
if(self.timelineModel){ 
    NSMutableArray *sectionArray = self.timelineModel[self.stepperValue]; 
    NSLog(@"no of rows : %lu",(unsigned long)sectionArray.count); 
    return sectionArray.count; 
} 
else{ 
    return 1; 
} 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
LTTimeLineTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"tableCell" forIndexPath:indexPath]; 

if (cell !=nil){ 
    //some code 
} 

//some code 
cell.selectionStyle = UITableViewCellSelectionStyleNone; 
[cell.rowCollView reloadData]; 
NSLog(@"row number : %ld",(long)indexPath.row); 
return cell; 
} 

Бревна, которые появляются являются:

log 1: 
2014-11-21 17:28:25.937 xx[89937:1095174] no of rows : 6 
2014-11-21 17:28:25.938 xx[89937:1095174] row number : 0 
2014-11-21 17:28:25.939 xx[89937:1095174] row number : 1 
2014-11-21 17:28:25.939 xx[89937:1095174] row number : 2 
2014-11-21 17:28:25.940 xx[89937:1095174] row number : 3 

log 2: 
2014-11-21 17:07:54.932 xx[89937:1095174] no of rows : 5 
2014-11-21 17:07:54.933 xx[89937:1095174] row number : 0 
2014-11-21 17:07:54.933 xx[89937:1095174] row number : 1 
2014-11-21 17:07:54.934 xx[89937:1095174] row number : 2 
2014-11-21 17:07:54.937 xx[89937:1095174] row number : 3 
+0

Что такое «self.timelineModel» и что такое «self.timelineModel [self.stepperValue]»? –

+0

Что произойдет, если вы попробуете прокрутить вниз? Происходит ли это вообще, или отскок? Если вы программно прокрутите вниз до строки 5/6, это сработает? – pbasdf

+0

Что такое rowCollView и зачем вам перезагружать данные? –

ответ

0

Это ожидаемое поведение.

Строки в UITableView загружаются умными, загружаются только те строки, которые видны на экране, другие будут загружены после прокрутки.

Это потому, что alloc (создание объекта в памяти) является дорогостоящим. Из-за этого iOS создайте только несколько ячеек, а затем переработайте их.

+0

Да, я это понимаю, но в этом случае даже прокрутка вниз помогает. Даже после прокрутки лишняя строка не загружается –

+0

Но верно ли, что только первые три ячейки видны при первой загрузке таблицы? Потому что из вашего журнала интересно, что всегда возвращают 3 ячейки, а не количество ячеек. Возможно ли, что numberOfRows вызывается снова с другим номером или что делегат изменен? –

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