gpt4 book ai didi

ios - 我可以强制 uitableview 中的单元格不在每个部分中从索引 0 开始吗​​?

转载 作者:行者123 更新时间:2023-11-29 13:05:50 25 4
gpt4 key购买 nike

我有一个包含 6 个单元格和 6 个分隔符的静态 TableView 。我需要单元格 1 的索引为 0,单元格 6 的索引为 5,这可能吗?我下面的代码不起作用,因为每个单元格都在一个单独的部分中,所以它认为每次都选择了单元格 0,并且它再次使用相同的数据填充单元格,它认为它的单元格 0。

-(void) longTap:(UILongPressGestureRecognizer *)gestureRecognizer
{
NSLog(@"gestureRecognizer= %@",gestureRecognizer);
if ([gestureRecognizer state] == UIGestureRecognizerStateEnded)
{
NSLog(@"longTap began");

CGPoint p = [gestureRecognizer locationInView:self.tableView];

NSIndexPath *indexPath = [myTable indexPathForRowAtPoint:p];
if (indexPath == nil)
{
NSLog(@"long press on table view but not on a row");
}
else
{
NSLog(@"long press on table view at row %d", indexPath.row);

switch (indexPath.row)
{
case 0:
del.tableRowNumber = 0;
break;
case 1:
del.tableRowNumber = 1;
break;
case 2:
del.tableRowNumber = 2;
break;
case 3:
del.tableRowNumber = 3;
break;
case 4:
del.tableRowNumber = 4;
break;
case 5:
del.tableRowNumber = 5;
break;
}
}

UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"MealPlannerRecipeTypeViewController"];
[self.navigationController pushViewController:controller animated:YES];
}
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}

RecipeInfo *recipeInfo = recipeInfoArray[indexPath.row];
cell.textLabel.text = recipeInfo.name;
return cell;
}

我刚刚试过这个来获取标签:

CGPoint p = [gestureRecognizer locationInView:myTable];
NSIndexPath *indexPath = [myTable indexPathForRowAtPoint:p];
UITableViewCell *cell = [myTable cellForRowAtIndexPath:indexPath];

NSLog(@"TAG IS : %i", cell.tag);

虽然每个单元格仍然标记有我表格中第一个单元格的值?

最佳答案

一般来说,为了实现“直接”计数(即当 n+1 部分的单元格编号在 n 部分的单元格之后继续编号时)你需要将前面所有部分的总行数加到当前行号上。

如果您知道每个部分的行数是一,则可以采用“直接”计数的快捷方式,并使用部分编号而不是行号:

RecipeInfo *recipeInfo = recipeInfoArray[indexPath.section];

每个部分一行的确切公式是 indexPath.section * 1 + indexPath.row,但 indexPath.row 始终为零,我们可以放弃乘法1.你也应该使用

del.tableRowNumber=indexPath.section;

替换长按处理程序中的 switch 语句。

关于ios - 我可以强制 uitableview 中的单元格不在每个部分中从索引 0 开始吗​​?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18671823/

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