나처럼 눈이 멀지 않은 경우 문제가있을 수 있습니다. 데이터 소스에서 정보를 가져 오는 customs 셀에 대한 tableview가 있습니다. 이 사용자 정의 셀에는 모든 셀의 데이터 소스를 변경하는 버튼이 있습니다. 하나의 셀에서 버튼을 누르면 다른 모든 셀이 어두워집니다. 데이터 소스가 변경되었지만 테이블보기에서 셀을 끌 때 셀만 업데이트된다는 것이 문제입니다. 버튼을 눌렀을 때 메서드가 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];
}
일부 코드 – iPrabu
cellForRowAtIndexPath 메서드에 중단 점을 설정하여 tableview가 실제로 다시로드되는지 확인하십시오. – Ilanchezhian
[reload data]가 호출 될 때 cellForRowAtIndexPath 메서드가 즉시 호출되지 않습니다. cellForRowAtIndexPath에 tableview가 호출 될 때 여러 개의 nslog가 있습니다. 드래그 됨 – Bjarke