2015-02-03 5 views
0

검색 한 결과 대부분의 권장 사항은 [tableView reloadData] 뿐인 것 같습니다.UITableView 애니메이션이있는 셀을 삭제 하시겠습니까? iOS (Objective C)

그러나 셀 삭제시 애니메이션이 적용됩니다. 체크리스트를 상상할 수 있다면 체크리스트에 항목을 추가하고 체크리스트의 항목/작업 (EG : "우유 바에서 우유 가져 오기")이 완료되면 항목/작업을 탭하여 제거합니다. 어느 시점에서 애니메이션으로 셀을 사라지게하고 싶습니다.

위에서 언급했듯이 대부분의 사람들은 내가 가지고있는 배열에서 항목을 제거하고 단순히 tableview를 다시로드하는 경로를 추천합니다.하지만 이는 완전히 애니메이션이 아닙니다.

다음은 거의 성공하지 못했던 대안입니다.

[tableView beginUpdates] 
[tableView deleteRowsAtIndexPaths:[self.taskArray objectAtIndex:indexPath.row] withRowAnimation:UITableViewRowAnimationFade]; 
[tableView endUpdates] 

참고 : taskArray는 입력 한 태스크로 채워집니다. 또한 위 코드는 "didSelectRowAtIndexPath"메서드 내에 있습니다. 무엇이 잘못하고 무엇을 할 수 있는지에 대한 조언이 있습니까?

TLDR; 나는 단순히 그것을 두드려서 tableView에서 애니메이션이있는 셀을 제거하고 싶다.

+0

멀티 컬러 픽셀 대답으로 didSelectRowAtIndexPath했다 당신. 색인 배열 배열을 제공하지 못했습니다. 문제가 해결되었습니다. 고맙습니다!! – StealthyBro

답변

1

API를 사용하면 색인 경로 배열을 요청하고 삭제하고자하는 실제 항목 만 전달할 것을 요청하고 있습니다. 당신이 시도하면 어떻게됩니까

:

[tableView beginUpdates]; 
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
[tableView endUpdates]; 
+2

데이터 소스에서 항목을 제거하는 것을 잊지 마십시오. – Neelesh

+0

그래, 테이블보기에서 셀을 삭제하기 전에 배열이나 데이터 원본에서 항목을 삭제하는 것을 잊지 마세요. –

+0

나의 신 당신을 사랑합니다 :) 문제가 해결되었습니다! – StealthyBro

0

에서, 내 실수는 내 배열에

// Delete from the taskArray 
[self.taskArray removeObjectAtIndex:indexPath.row]; 

// Remove row from the tableview 
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
관련 문제