2011-08-02 5 views
-1

나처럼 눈이 멀지 않은 경우 문제가있을 수 있습니다. 데이터 소스에서 정보를 가져 오는 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]; 
    } 
+0

일부 코드 – iPrabu

+1

cellForRowAtIndexPath 메서드에 중단 점을 설정하여 tableview가 실제로 다시로드되는지 확인하십시오. – Ilanchezhian

+0

[reload data]가 호출 될 때 cellForRowAtIndexPath 메서드가 즉시 호출되지 않습니다. cellForRowAtIndexPath에 tableview가 호출 될 때 여러 개의 nslog가 있습니다. 드래그 됨 – Bjarke

답변

0

인터페이스 빌더와 올바르게 설정된 클래스 사이에 링크가 없습니다. IB는 내 특정 클래스 대신 UIViewController로 설정되었습니다. 도움과 시간 내 주셔서 감사합니다.