2010-03-02 7 views
0

볼 수없는 테이블에 새 셀을 삽입하고 있습니다. (화면 하단에 있음을 알고 있습니다.) 그래서 scrollToRowAtIndexPath를 호출합니다. 그러나UITableView insertRowAtIndexPaths scrollToRowAtIndexPath가 셀을 두 번 그립니다.

[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:myIndexPath] withRowAnimation:UITableViewRowAnimationBottom]; 
[tableView scrollToRowAtIndexPath:myIndexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; 

, 나는이 작업을 수행 할 때 실제로 셀을 볼 수는에 (예를/그린 두 번 애니메이션, 그리고 삽입에서 UITableViewRowAnimationBottom을 제거하면 삽입이 볼 수 있어야합니다 때이 애니메이션되지 않을 것이라는 점을 의미하기 2 행).

어떻게하면이 애니메이션 문제를 해결할 수 있을까요?

감사합니다,

답변

1

당신은 스크롤, 다른 사용 UITableViewRowAnimationNone를 건너 볼 경우 행이 visible-- 여부를 확인할 수 있습니다. UITableView의 -cellForRowAtIndexPath :를 호출하면 행이 보이지 않으면 nil을 반환해야합니다.

+0

문제는 내가 삽입 된 후에 새로 삽입 된 셀을 볼 수 있는지 파악할 수 없기 때문에 스크롤할지 여부를 결정할 수는 있지만 결정을 내리기에는 너무 늦습니다. UITableViewRowAnimationBottom 또는 UITableViewRowAnimationNone을 사용하여 행을 삽입하는 방법에 대해 설명합니다. 내가 여기 뭔가 명백한 것을 놓친 적이 있습니까? – Paul

+0

투영 된 indexPath와 함께 호출하는 UITableView의 -cellForRowAtIndexPath를 추가해야합니다. 셀이 보이지 않으면 nil을 반환하지 않는 것 같습니다. (적어도 나를위한 것은 아니지만, 아마 테이블을 분할하여 섹션을 나누는 것이 복잡합니다.) – Paul

+0

그런 경우에는 -indexPathsForVisibleRows? 맨 아래에 추가하지 않는 한, 삽입이 표시 될 경우 표시되는 행은 이미 myIndexPath에 있으며, 표시되지 않으면 표시되지 않습니다. 나는 생각한다. 나는 이것을 처리하지 않았다. 삽입 된 부분은 세부적인 뷰로 건너 뛰기 때문에 항상 오프 스크린으로 발생한다. –

관련 문제