내 UITableView 인스턴스에서 셀을 인덱스 : 0으로 이동하고 데이터를 다시로드하려고합니다. 문제는 셀이 ("reloadData"로 인해) 맨 위에 "스냅"된다는 것입니다. 내가 셀을 위로 움직일 수 있는지 궁금해서 몇 초 후 reloadData를 적용하십시오. Heres는 내 코드 : 메소드가 호출 된 후reloadData를 사용하여 애니메이션 사용
가[_toDoItems removeObject:todoItem];
[_toDoItems insertObject:todoItem atIndex:0 ];
[self.tableView beginUpdates];
[self.tableView moveRowAtIndexPath:origIndexPath toIndexPath:0];
[self.tableView endUpdates];
sleep(1);
[self.tableView reloadData];
이의 문제는, 모든 1 초 동안 일시 정지되고, 다음 애니메이션이 발생합니다 "스냅".
뭐죠 수면 '의 사용 (1) ;'? 그것을 제거하십시오. – Souljacker
'sleep()'을 사용해서는 안됩니다. 모든 비주얼을 처리하는 주 스레드를 포함한 모든 스레드를 차단합니다. 이것이 잠깐 기다린 다음 찰칵 때 보이는 이유입니다. 스냅은 잠금 장치가 해제되기를 기다리는 중입니다. 또한'reloadData'에는 애니메이션이 없기 때문에 "스냅하는"효과를줍니다. – Firo
내 논리는 셀이 맨 위로 이동한다는 것입니다. 잠자기가 reloadData를 1 초 지연시킵니다. – Brian