gpt4 book ai didi

ios - 在不同的行更新 UiTableViewCell

转载 作者:行者123 更新时间:2023-11-29 12:42:56 25 4
gpt4 key购买 nike

这是当前 tableView 的样子。

enter image description here

我想做的是乱序编辑单元格。我希望 24 出现在第 1 轮而不是第 2 轮,它出现在第 2 轮并且 G2 有延迟更新,所以它更新了第 1 场比赛之前进行的比赛,第 3 场比赛比第 2 场比赛落后 1 轮。因此 G1 的更新会像往常一样,每个新的 tableViewCell 都会创建一个新的回合,但是对于游戏 2,第一个输入将在第 1 轮中显示如下,而游戏 1 在第 2 轮上。

这是我当前配置 tableViewCell 的方法。

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier forIndexPath:indexPath];
NSIndexPath *g2IndexPath = [NSIndexPath indexPathForRow:(indexPath.row)-1 inSection:0];



if ([p1G1ScoreArray count] > 0 && [p1G1ScoreArray count] >= indexPath.row){
UILabel *label1 = (UILabel *)[cell.contentView viewWithTag:1];
NSString *label1String = [p1G1ScoreArray objectAtIndex:indexPath.row];
[label1 setText:label1String];
}

if ([p2G1ScoreArray count] > 0 && [p2G1ScoreArray count] >= indexPath.row ){
UILabel *label2 = (UILabel *)[cell.contentView viewWithTag:2];
NSString *label2String = [p2G1ScoreArray objectAtIndex:indexPath.row];
[label2 setText:label2String];
}


if ([p1G2ScoreArray count] >0 && g2RowIndex >= 0 &&[p1G2ScoreArray count] >= g2IndexPath.row){
UILabel *label3 = (UILabel *)[cell.contentView viewWithTag:3];
NSString *label3String = [p1G2ScoreArray objectAtIndex:(indexPath.row)-1];
[label3 setText:label3String ];
}

if ([p2G2ScoreArray count] >0 && g2RowIndex >= 0 &&[p2G2ScoreArray count] >= g2IndexPath.row){
UILabel *label4 = (UILabel *)[cell.contentView viewWithTag:4];
NSString *label4String = [p2G2ScoreArray objectAtIndex:g2IndexPath.row];
[label4 setText:label4String];
}

if ([p1G3ScoreArray count] >0 &&[p1G3ScoreArray count] >= indexPath.row){
UILabel *label5 = (UILabel *)[cell.contentView viewWithTag:5];
NSString *label5String = [p1G3ScoreArray objectAtIndex:indexPath.row];
[label5 setText:label5String];
}

if ([p2G3ScoreArray count] >0 &&[p2G3ScoreArray count] >= indexPath.row){
UILabel *label6 = (UILabel *)[cell.contentView viewWithTag:6];
NSString *label6String = [p2G3ScoreArray objectAtIndex:indexPath.row];
[label6 setText:label6String];
}


UILabel *roundTrackerLabel = (UILabel *)[cell.contentView viewWithTag:10];
NSString *roundTrackerLabelString = [NSString stringWithFormat:@"Round %d", indexPath.row +1];
[roundTrackerLabel setText:roundTrackerLabelString];


return cell;

}

编辑

这里是添加数据的方式

- (IBAction)addNewRoundButtonPressed:(id)sender {
i++;
g2RowIndex ++;
j = i -2;
[p1G1ScoreArray addObject:[NSString stringWithFormat:@"%d", 2+i]];
if (g2RowIndex >= 0){
[p1G2ScoreArray addObject:[NSString stringWithFormat:@"%d", 22+i]];

}

[self.tableView reloadData];
}

最佳答案

从这里查看您的代码,我建议只将每个新输入添加到数组中,不要担心索引。至于你的检查,请为每个数组尝试这种方法。

if ([p1G1ScoreArray count] > indexPath.row){
UILabel *label1 = (UILabel *)[cell.contentView viewWithTag:1];
NSString *label1String = [p1G1ScoreArray objectAtIndex:indexPath.row];
[label1 setText:label1String];
}

每个数组的索引是它的 count-1,因为数组从第一个项目开始偏移。 = 项目正在取消支票。

关于ios - 在不同的行更新 UiTableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24441918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com