更新uitableview自定义单元格
问题描述:
我有一个问题,如果你不像我一样盲目,可能相当容易。我有一个海关单元的桌面视图,这些单元正在从一个数据源获取信息。在这个自定义单元格中,我有一个按钮可以更改所有单元格的数据源。按下一个单元格中的按钮应该使所有其他单元格变黑。数据源发生了变化,但是我的问题是,只有当我在表格视图中拖动单元格时,单元格才会更新。按钮被按下时的方法放置在tableview中,并以[tableview reloadData];结束。但它只在拖动时更新。更新uitableview自定义单元格
任何帮助理解
--Update-- 下面示出了当按钮被按下调用的方法。开关盒更改数据源。 button.tag用于查看按下哪个单元格。
-(void)myPackageButtonPushed:(id)sender
{
UIButton* myButton = (UIButton*)sender;
NSLog(@"id %d",myButton.tag);
int test=myButton.tag;
for (int i=0; i<[packageList count]; i++) {
TVPackage *tvpack=[packageList objectAtIndex:i];
[tvpack setMyPackage:NO];
}
switch (test) {
case 0:
NSLog(@"0");
[[packageList objectAtIndex:0] setMyPackage:YES];
[[packageList objectAtIndex:1] setMyPackage:YES];
break;
case 1:
NSLog(@"1");
[[packageList objectAtIndex:0] setMyPackage:YES];
[[packageList objectAtIndex:1] setMyPackage:YES];
break;
case 2:
NSLog(@"2");
[[packageList objectAtIndex:2] setMyPackage:YES];
[[packageList objectAtIndex:3] setMyPackage:YES];
break;
case 3:
NSLog(@"3");
[[packageList objectAtIndex:2] setMyPackage:YES];
[[packageList objectAtIndex:3] setMyPackage:YES];
break;
case 4:
NSLog(@"4");
[[packageList objectAtIndex:4] setMyPackage:YES];
[[packageList objectAtIndex:5] setMyPackage:YES];
break;
case 5:
NSLog(@"5");
[[packageList objectAtIndex:4] setMyPackage:YES];
[[packageList objectAtIndex:5] setMyPackage:YES];
break;
default:
break;
}
[self.tableview performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
}
答
我没有正确设置Interface Builder和类之间的链接。 IB被设置为一个UIViewController而不是我特定的类。感谢您的帮助和时间。
提供了一些代码 – iPrabu
通过在cellForRowAtIndexPath方法中设置断点,确认tableview是否真正重新加载。 – Ilanchezhian
当调用[reload data]时,不会立即调用cellForRowAtIndexPath方法。我在cellForRowAtIndexPath中有几个nslog,它们在tableview时被调用。被拖动 – Bjarke