iOS:动态标记信息窗口
我正在尝试将图像动态加载到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; } }