我正在尝试将图像动态加载到infowindow中。问题是SDWebImage永远不会完成。但是,一旦我再次单击标记,图像显示并完成调用,但从未在第一次调用。我的“运行”日志首次显示,因此我知道代码正在被调用,但是第一次运行时完全没有显示,除非图像被缓存,在这种情况下它将显示在第二个标记点击上。
旁注:我将链接存储在代码段中,因为我没有其他用途。
为什么SDWebImage无法完成的任何想法?或者有没有其他人能想到的更好的方法?
我在文档中的块下看到的最后一件事,它说下面似乎适合但我不知道我是如何取消请求以导致此行为。
注意:如果您的图像请求在完成之前被取消,那么您的成功和失败阻止都不会被调用。
bool tapped = NO;
-(BOOL) mapView:(GMSMapView *) mapVieW didTapMarker:(GMSMarker *)marker{
tapped=YES;
[mapVieW setSelectedMarker:marker];
return YES;
}
- (UIView *)mapView:(GMSMapView *)mapVieW markerInfoWindow:(GMSMarker *)marker{
if([marker.snippet isEqualToString:@""] || [marker.snippet isEqualToString:nil]){
//no image
tapped = NO;
//code here
return view;
}else{
//image
//code for custom view which is unimportant
if(tapped){
NSLog(@"run");
[image setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", URL_PREFIX, marker.snippet]] placeholderImage:[UIImage imageNamed:@"you"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
NSLog(@"complete");
tapped=NO;
[mapView setSelectedMarker:nil];
[mapView setSelectedMarker:marker];
}];
}
return view;
}
}