2012-06-11 4 views
1

저는 맞춤형 uitableviewcell을 가진 uitableview를 가지고 있습니다. [cell.imageView의 setImageWithURL : [NSURL URLWithString : 셀 이미지가SDWebImageDownloader를 사용할 때 UITableView가 깜박입니다.

[SDWebImageDownloader downloaderWithURL:[NSURL URLWithString:url] delegate:self]; 

내가 대신 다음의 방법보다 사용이 방법을 사용하여 원격으로 다운로드 이미지와 몇 레이블로 구성 @ "HTTP ://www.domain.com/path/to/image.jpg "] placeholderImage : [UIImage imageNamed : @"placeholder.png "]]];

(ref https://github.com/rs/SDWebImage) 이미지를 다운로드 한 후에 약간의 사후 처리가 필요하기 때문입니다. 이미지로드가 완료되면 SDWebImageDownloader에 콜백 메서드가 있으므로 그 이유가 무엇입니까?

내가 할 경우

[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"] 
       placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

[포스트 processImage]

가 완전히 다운로드되기 전에 내가 이미지를 후 처리하고 가능성이있다, 어쨌든이 문제가 아니라 당신이 알려 어떤 연구를 한 후에 문맥

다음과 같이, 나는 로딩 요청을 취소해야한다고 말했다. 그러나 그것이 도움이 될지 모르겠다. 플러스 나는 어느 것이 정말로 로딩되어야 하는지를 어떻게 구별해야할지 모르고 취소해야 할 것들

내 문제는 SDWebImageDownloader를 사용할 때 uitableview를 스크롤 할 때 이미지가 천천히로드되고 이전 이미지에서 다른 이미지로 천천히로드되고 변경되는 방식으로 깜박 거리며 깜박 거리며 마지막에 올바른 이미지가로드됩니다. 이미지가 깜박 거리는 것은 바람직하지 않습니다.

그것은 SDWebImageDownloader 콜백에서 지연이나 깜박임을 유발하는 이미지에 대한 후 처리가 아닌 SDWebImageDownloader에 대한 호출로 문제를 일으키는 것으로 보입니다. 난 그냥 이미지를 할당하면 깜박임 여전히 발생합니다.

SDWebImageDownloader를 사용하는 대신 선택의 여지가 있습니다. 이미지의 크기를 조정해야하기 때문에 ... 아무도 깜박임을 피할 수있는 방법을 말해 줄 수 있습니까? 덕분에

+0

1) 깜박임이나 말더듬 소리입니까? 이미지가 실제로 "깜박"합니까, 잠깐 검정/공백입니까? 또는 느린 동작 (즉, 스크린 샷이 자리 표시 자/실제 이미지를 모두 캡처 할 수 있습니까? 아니면 각 셀이로드되는 동안 스크롤에서 더듬 거리는 것입니까? 2) 재사용 가능한 셀을 대기열에서 제외하고 있습니까? – ckhan

+0

안녕하세요 ckchan 답장을 보내 주셔서 감사합니다. 예, 나는 세포를 재사용하고 있습니다. 관찰은 스크롤 할 때 오래된 그림에서 새로운 그림으로 바뀌는 이미지를 볼 수 있다는 것입니다 ... 그러한 지연은 눈에 띄는 것입니다. SDWebDownloadManager를 사용하는 경우에만 발생합니다. – user1118019

+0

"이전 그림"은 자리 표시자를 의미합니까? 이전에 다른 데이터에 사용되었을 때 셀에 있던 내용은 무엇입니까? – ckhan

답변

0

AFNetworking 라이브러리를 업데이트 한 이래로 에서 의 setImageWithURL:이 호출되었습니다.

downloadWithURL:options:progress:completed:에서 SDWebImageManager을 사용하여 해결했습니다.

저는 Foursquare API의 데이터를 사용하여 채워진 UITableView (사용자 정의 셀 포함)이 있습니다. setImageWithURL: 메서드로 인해 깜박임이 발생했습니다. 시뮬레이터 (LAN) 및 iPhone5 (WiFi)에서는 깜박임처럼 보였습니다. 그러나 장치에서 2G로 전환하면 올바른 이미지가 설정되기 전에 다른 셀의 이미지가 imageView에로드되고있는 것으로 나타났습니다.

먼저 자리 표시 자 이미지를 설정 한 다음 downloadWithURL:options:progress:completed: 메서드의 완료 블록에 이미지를 설정하여 setImageWithURL:에서 downloadWithURL:options:progress:completed:으로 전환했습니다. 더 부드럽게되고 모든 깜박임이 해결되었습니다.

관련 문제