这是一个有趣的问题。我正在开发一个带有tableview的应用程序。最初tableview有4行,所有4行在图像视图中具有相同的图像。当我单击第一行时,我在第一行下手动添加了一些子行并重新加载了表视图。当我第二次点击我之前点击的同一行时,我删除了手动添加的对象并重新加载了tableview。我想改变第一个图像。第1行时排点击行,然后第二次点击第1行。行然后显示所有四行的前一图像相同..请告诉我如何执行此操作。
a=b=c=FALSE
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
///////11111
if(a==FALSE && indexPath.row==0)
{
[array insertObject:@"a" atIndex:1];
[array insertObject:@"b" atIndex:2];
[array insertObject:@"c" atIndex:3];
a=TRUE;
}
else if(indexPath.row==0 && a==TRUE)
{
[array removeObject:@"a"];
[array removeObject:@"b"];
[array removeObject:@"c"];
a=FALSE;
}
else if(a==FALSE && b==FALSE && indexPath.row==1)
{
[array insertObject:@"d" atIndex:2];
[array insertObject:@"e" atIndex:3];
[array insertObject:@"f" atIndex:4];
b=TRUE;
}
else if(a==TRUE && b==FALSE && indexPath.row==4)
{
[array insertObject:@"d" atIndex:5];
[array insertObject:@"e" atIndex:6];
[array insertObject:@"f" atIndex:7];
b=TRUE;
}
else if(a==FALSE && b==TRUE && indexPath.row==1)
{
[array removeObject:@"d"];
[array removeObject:@"e"];
[array removeObject:@"f"];
b=FALSE;
}
else if(a==TRUE && b==TRUE && indexPath.row==4)
{
[array removeObject:@"d"];
[array removeObject:@"e"];
[array removeObject:@"f"];
b=FALSE;
}
/////////3333333333
else if(a==FALSE && b==FALSE && c==FALSE && indexPath.row==2)
{
[array insertObject:@"m" atIndex:3];
[array insertObject:@"n" atIndex:4];
[array insertObject:@"p" atIndex:5];
c=TRUE;
}
else if(a==FALSE && b==TRUE && c==FALSE && indexPath.row==5)
{
[array insertObject:@"m" atIndex:6];
[array insertObject:@"n" atIndex:7];
[array insertObject:@"p" atIndex:8];
c=TRUE;
}
else if(a==TRUE && b==FALSE && c==FALSE && indexPath.row==5)
{
[array insertObject:@"m" atIndex:6];
[array insertObject:@"n" atIndex:7];
[array insertObject:@"p" atIndex:8];
c=TRUE;
}
else if(a==TRUE && b==TRUE && c==FALSE && indexPath.row==8)
{
[array insertObject:@"m" atIndex:9];
[array insertObject:@"n" atIndex:10];
[array insertObject:@"p" atIndex:11];
c=TRUE;
}
else if(a==TRUE && b==TRUE && c==TRUE && indexPath.row==8)
{
[array removeObject:@"m"];
[array removeObject:@"n"];
[array removeObject:@"p"];
c=FALSE;
}
else if(a==TRUE && b==FALSE && c==TRUE && indexPath.row==5)
{
[array removeObject:@"m"];
[array removeObject:@"n"];
[array removeObject:@"p"];
c=FALSE;
}
else if(a==FALSE && b==TRUE && c==TRUE && indexPath.row==5)
{
[array removeObject:@"m"];
[array removeObject:@"n"];
[array removeObject:@"p"];
c=FALSE;
}
else if(a==FALSE && b==FALSE && c==TRUE && indexPath.row==2)
{
[array removeObject:@"m"];
[array removeObject:@"n"];
[array removeObject:@"p"];
c=FALSE;
}
//////4444444444
if(indexPath.row==[array count]-1)
{
---
}
[tableview reloadData];
}
答案 0 :(得分:1)
我假设您正在使用包含字典的数组填充表视图。 您可以将标志设置为字典(类似于'expanded'或'collapsed'),然后在cellForRowAtIndexPath中检查标志是否为true / false,以便您可以根据标志设置图像。
答案 1 :(得分:0)
使用类型单元创建类,其中包含数据成员,无论单元格是什么,另一类是NSString * parentElement。对于主要的四个标签,父元素将为null。但是对于单元格内的子单元,所有者单元格将是其父元素。因此,现在检查父元素的条件并设置所需的图像。它对我来说很好。希望它也适合你。