0

UICollectionView 셀을로드 할 때 이미지를 비동기로 다운로드하는 메서드를 호출합니다.UICollectionView는 비동기 이미지 다운로드 중에 다른 셀에 비동기 이미지를로드합니다.

그러나 다운로드하는 동안 내 컬렉션보기가 다시로드되므로 비동기 이미지를 다운로드 할 때 두 개의 다른 셀에 설정됩니다.

나는 을 사용하여 시도했는데 dealloccancelAllOperations:이라고 부릅니다. 그러나 이것은 작동하지 않았습니다.

이 다운로드를 취소하는 가장 좋은 방법은 무엇이며 누군가 샘플 코드를 제공 할 수 있습니까?

감사합니다.

답변

0

나는 이미지를 필요로하고 결과를 캐싱하고 요청이 완료 될 때 콜렉션 상태에 대한 기대치를 기대하지 않고 요청을 늦추는 것이 가장 좋습니다.

컬렉션을 다시로드하면 특정 셀의 이미지 요청 요청이 무효화되지 않습니다. 멀리 스크롤하는 것은 가능하지만 사용자가 뒤로 스크롤 할 수 있습니다. 따라서 요청을 만들고 요청 블록의 완료 블록에서 결과와 reloadItemsAtIndexPaths :를 요청과 관련된 색인 경로에 캐시하십시오.

My answer here은 작동 코드를 제공합니다.

+0

문제는 저보다 훨씬 쉽습니다. 이미지가 다운로드 된 지점에 여전히 UIImageView에 대한 포인터가있는 이유를 이해할 수 없습니다. –

+0

코드를 게시해야 할 수도 있습니다. 또한, 하나의 과제를 수행했지만 두 개의 셀에서 이미지보기가 변경되었다고 말하는 것입니까? (당신이 뚜렷하게 보이는 두 개의 요청이 같은 이미지를 낳을 가능성이 훨씬 더 높습니다). – danh

+0

일련의 이벤트가 있습니다. 셀 가져 오기 -> 비동기로드 이미지 ... 셀로드 및 일부 추가 -> 셀 가져 오기 -로드 이미지 동기화 -> 첫 번째로드와 동일한 인덱스 경로의 셀에 이미지로드 -> 같은 인덱스 경로의 셀에서 두 번째 이미지로드 제 2 부하로서. –

관련 문제