2010-08-17 3 views
1

내 앱에서는 사용자가 테이블보기에서 행의 순서를 바꿀 수 있지만 무언가를 바꾸기 위해 이동이 완료되면 (첫 번째 행에 텍스트를 추가하는 경우) reloadData으로 변경하려고합니다.행 이동시기 알 수있는 방법

나는 moveRowAtIndexPath: 메서드에서 reloadData을 시도했지만,이 메서드는 많은 시간 (이동해야하는 행 수에 따라) 호출되고 테이블 뷰가 여러 번 다시로드되기 때문에 응용 프로그램이 중단됩니다.

그래서 나는 단지 움직이는 행동이 언제 한 번에 reloadData이되는지 알고 싶습니다. 아무도 이것에 대해 알고 있습니까? 도와주세요. 정말 감사합니다!

답변

1
- (void)doReload 
{ 
    [myTable reloadData]; 
} 

당신은 moveRowAtIndexPath 방법 [self performSelector:selector(doReload) withObject:nil afterDelay:0.1]을 할 수 있지만,이 발견은 루프가 발생하기 때문에 직접 [myTable reloadData]를 호출 할 수 없습니다. 기본적으로 테이블 조작이 끝나고 실행 루프가 메소드를 호출하여 테이블을 다시로드하게해야합니다. 이것은 약간의 해킹이지만 잘 작동합니다. 일반적으로이 시점에서 reloadData이 필요하지 않지만 평소와 다른 것을하려고 할 수 있습니다.

+0

우리는 약간의 트릭을해야하지만 잘 작동합니다. 감사합니다. –

0
-(int)table:(UITable*)table movedRow: (int)row toRow: (int)dest 
+0

이 과부하 메서드가 의미있는 것 같지만 실행되지 않습니다 –

관련 문제