2015-09-15 1 views
1

Я использую SDWebImage для асинхронного скачивания и кеширования изображений в UIImageView, но у меня есть некоторые проблемы.SDWebImage - Изображение из url не заменяет изображение заполнителя после его завершения. Загрузка

В моем проекте я создаю маркер булавки, у которого есть диалоговое окно, в котором есть UIImageView.

Проблема, с которой я сталкиваюсь, - это изображение с URL-адреса, которое не заменило изображение владельца места после его завершения. Первый щелчок на маркеру булавки всегда отображает изображение держателя места.

Изображение с url будет отображаться только после того, как я нажму маркер булавки во второй раз.

Я хочу отображать изображение с URL-адреса в первом клике, что мне делать?

вот мой код

-(UIView *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker{ 
PlaceData *currentMarker = [self findDataByMarker:marker]; 

UIView *dialogView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 261, 95)]; 

// Create background image 
UIImageView *dialogBackground = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"MapDialog.png"]]; 
[dialogView addSubview:dialogBackground]; 

UIImageView * thumbnail = [[UIImageView alloc] init]; 

[thumbnail sd_setImageWithURL:[NSURL URLWithString:currentMarker.thumbnail] placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRefreshCached]; 

NSLog(@"URL %@", currentMarker.thumbnail); 
NSLog(@"thumbnail %@",thumbnail); 



CGRect tmpFrame = thumbnail.frame; 
tmpFrame.origin.x = 15; 
tmpFrame.origin.y = 14; 
tmpFrame.size.width = 55; 
tmpFrame.size.height = 55; 
thumbnail.frame = tmpFrame; 
thumbnail.contentMode = UIViewContentModeScaleToFill; 
[dialogView addSubview:thumbnail]; 

return dialogView; 

PS. Пожалуйста, помогите мне решить эту проблему и извините за мой английский.

+0

Вы уверены, что imageNamed: @ "placeholder.png" возвращается и фактическое изображение? –

ответ

0

Пожалуйста, попробуйте с этим кодом

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^{ 
    [thumbnail sd_setImageWithURL:[NSURL URLWithString:currentMarker.thumbnail] placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRefreshCached]; 
}); 
+0

спасибо за ответ, я уже изменил изображение gif на png-изображение, но оно все еще не работает. –

+0

Используйте это после добавления subview: [thumbnail sd_setImageWithURL: [NSURL URLWithString: currentMarker.thumbnail] placeholderImage: [UIImage imageNamed: @ "placeholder.png"] опции: SDWebImageRefreshCached]; –

+0

Я уже пробовал, но все равно не работает. –