我在向NSMutableArray
添加元素并将其写入tableView时遇到问题。在这段代码之后,它应该在@" 0"中写入tableView元素。到@" 19"但它显示我从0到13,然后以错误的顺序显示。
以下是截图:
如何以正确的顺序将它们写入数组的末尾?
- (void)refreshBottom{
int p = 0;
for (int i = p; i< p + 20; i++) {
[cells addObject:@(i)];
}
[self.refreshControl endRefreshing];
[_timeline_table reloadData];
}
单元格为NSMutableArray
。
UITableView数据源
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleDefault;
[cell.textLabel setText:[NSString stringWithFormat:@"%@",[cells objectAtIndex:indexPath.row]]];
}
return cell;
}
答案 0 :(得分:0)
您需要在if
:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
cell.selectionStyle = UITableViewCellSelectionStyleDefault;
}
[cell.textLabel setText:[NSString stringWithFormat:@"%@",[cells objectAtIndex:indexPath.row]]];
return cell;
}
您不希望仅在创建单元格时设置内容。单元格被重用,相同的单元格稍后将用于另一个索引,所以你必须在这种情况下设置内容。