큰 이미지를 많이로드하는 앱이 있습니다. 게으른로드를하고 이미지가로드 된 후에도 화면에서 손가락을 뗄 때까지 셀에로드되지 않습니다. 나는 UIScrollViewDelegate
방법 scrollViewDidEndDragging
내 downloadImageForVisiblePaths
함수를 호출하고이 따로 scrollViewDidEndDecelerating
에, 나 또한 그렇게처럼 UITableView
의 cellForRowAtIndexPath
방법으로 이미지를 설정하고있다 :UITableView 느린로드 이미지가 손가락이 꺼질 때까지로드되지 않습니다.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// Code to load reusable custom cell
CustomObject *object = (CustomObject*) [self.tableArray objectAtIndex: indexPath];
if(!object.mainImage){
[self downloadImageForIndexPath:indexPath];
cell.mainImageView.image = [UIImage imageNamed:@"placeholder"];
}else{
cell.mainImageView.image = object.mainImage;
}
return cell;
}
을 downloadImageForIndexPath
은 다음과 같습니다 여기서
-(void) downloadImageForIndexPath:(NSIndexPath*) indexPath{
UIImage *loadedImage = [[UIImage alloc] init];
// take url and download image with dispatch_async
// Once the load is done, the following is done
CustomCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.mainImageView.image = loadedImage;
CustomObject *object = (CustomObject*) [self.tableArray objectAtIndex: indexPath];
object.mainImage = loadedImage;
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableVIew reloadData];
});
}
어디서 잘못 될지 알 수 없습니다. 손가락이 화면에 있더라도 이미지를로드해야합니다. 이 동작은 Google+, Instagram 또는 Facebook과 같은 앱에서 이미지가로드되는 방식과 유사합니다.
모든 포인터가 많이 감사하겠습니다.
이 잘 나는 실제로 주 스레드에서 이미지를 설정하고 배경 만 스레드에서 이미지를 얻고있다. 지금 SDWebImage를 시험 중입니다. 어떻게 진행되는지 알려 드리겠습니다. –
SDWebImage 완벽하게 작동합니다. 하나의 질문. 사과를 출시하려고 할 때 비공개 선별자를 사용하는 것에 대한 경고를 사과가주지 않습니까? SDWebImage에서 –
모든 공개하고 사용 앱 스토어에있는 많은 애플리케이션이있다. – iRaivis