Изображение не отображается в UIImageView вытащил с веб-сайта

0

У меня есть приложение, которое тянет изображение и отображает его в UIImageView. У меня есть код, который, как я знаю, работает для вытягивания изображений, поэтому я думаю, что он должен что-то делать с HTML. Я тройную проверку всех соединений в xcode и все подключены. Если бы вы могли сказать мне, почему изображение не тянет, это было бы здорово! Я тяну с этого веб-сайта, если вы хотите взглянуть на весь HTML самостоятельно, но я хочу изображение "Прямо сейчас".

Изображение 174551

Код для вывода изображения:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.urlForFeelsLike = @"http://www.weather.com/weather/today/CAXX0518:1:CA";
    NSURL *myURL2 = [NSURL URLWithString: [self.urlForFeelsLike stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
    NSURLRequest *request2 = [NSURLRequest requestWithURL:myURL2];
    [webViewForFeelLike loadRequest:request2];
    webViewForFeelLike.delegate = self;

    timer1 = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(loadImageForCurrentCondition) userInfo:nil repeats:YES];
}

-(void)loadImageForCurrentCondition {

    js = @"document.getElementsByClassName('wx-weather-icon')[0].src;";
    imgLink = [webViewForFeelLike stringByEvaluatingJavaScriptFromString:js];
    imgURL = [NSURL URLWithString:imgLink];
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{

        data = [NSData dataWithContentsOfURL:imgURL];
        [self performSelectorOnMainThread:@selector(setImageViewImage) withObject:data waitUntilDone:YES];
    });
}

- (void)setImageViewImage {

    imgData = [NSData dataWithContentsOfURL:imgURL];
    image   = [UIImage imageWithData:imgData];

    dispatch_async(dispatch_get_main_queue(),^{
        if (image == nil) {


        }
        else {

            [currentConditionImageView setImage:image];

        }

    });

    NSLog(@"Weather image reloaded");
}

HTML-строка, из которой я берусь:

<div class="wx-data-part wx-first"><img src="http://s.imwx.com/v.20131006.214956/img/wxicon/120/26.png" height="120" width="120" alt="Cloudy" class="wx-weather-icon">

Теги:
image

3 ответа

1
Лучший ответ

Ваш JavaScript неправильный.

document.getElementsByClassName('wx-weather-icon') //Always returns an array, so you want:
document.getElementsByClassName('wx-weather-icon')[0].src;

С другой стороны:

dcorbatta также находится ниже, вы используете UIWebView неправильно здесь. Кроме того, если вы используете UIWebView только для получения этого изображения, вы делаете это очень медленно, излишне интенсивно. UIWebView тратит много средств на воспроизведение и анализ (он предназначен для просмотра), когда что-то более простое будет выполнять тот же подвиг быстрее и эффективнее. Я бы рекомендовал загрузить страницу в виде строки HTML и вместо этого разбор этой строки.

  • 0
    Все еще ничего в представлении изображения
  • 0
    @KyleGreenlaw Отредактировано.
Показать ещё 5 комментариев
0
 As i have seen the link you gave. i Checked the css&HTML of the link the are not using the       "Rightnow" image. with our web view we can create backgrounds. and you css code is good it is   loading cloud image exactly.

i used the link [link]http://s.imwx.com/v.20131006.214956/img/wxicon/120/26.png where this is     a cloud image.. go to w3schools site and type/paste

[ссылка] http://www.w3schools.com/css/tryit.asp?filename=trycss_default

  • 0
    Извините, но это не имеет никакого смысла, не могли бы вы объяснить?
  • 0
    Я использовал ссылку [ссылка] s.imwx.com/v.20131006.214956/img/wxicon/120/26.png где это изображение облака ..
Показать ещё 2 комментария
0

Почему вы используете NSTimer? Вы можете использовать метод делегирования WebView: webViewDidFinishLoad: И почему вы извлекаете URL-адрес изображения из html? Изображение src изменится в ближайшем будущем?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню