iOS - потяните HTML-идентификатор, чтобы отобразить изображение в UIImageView

0

Мне нужно, чтобы вытащить строку HTML ниже с моего сайта и отобразить изображение в изображении, которое у меня есть на моей раскадровке. У меня уже есть какой-то код о том, как вытаскивать текст с одного и того же веб-сайта, могу ли я использовать что-то вроде другого кода? Конечно, без полосатой части, это только для получения простого текста. Я бы просто загрузил ссылку на изображение, но изображение изменилось в зависимости от воспроизведения песни. Я хочу попытаться избежать отображения изображения в UIWebView, я бы предпочел отобразить его в UIImageView

Код HTML:

<div id="album_cover"> 
<img height="160px" width="160px" id="imgcover" src="Link to image changed based on the song playing" alt="Loading..."></div>

Код цели C:

-(void)viewDidLoad {
    self.urlForLink = @"http://cloudrad.io/pointzeroradio/player";
    NSURL *myURL = [NSURL URLWithString: [self.urlForLink stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]];
    NSURLRequest *request = [NSURLRequest requestWithURL:myURL];
    [webViewForRecents loadRequest:request];

    timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(recentTracksText) userInfo:nil repeats:YES];

}

-(void)recentTracksText {

NSString *textForBlog = [webViewForRecents stringByEvaluatingJavaScriptFromString:@"document.getElementById('current_song').textContent;"];

// Add this step for stripping the HTML from the text you received
self.strippedTextForBlog = [self stringByStrippingHTMLFromString:textForBlog];

continuousLabel.text = self.strippedTextForBlog;


}

Исходя из ответа elio.d. Это отлично работает для меня и загружает от 30 секунд до 3 минут. Если у кого есть способ, который будет загружаться быстро.

-(void)getImageCover {

    NSString * js      = @"document.getElementById('imgcover').src;";
    NSString * imgLink = [webViewForRecents stringByEvaluatingJavaScriptFromString:js];
    NSURL    * imgURL  = [NSURL URLWithString:imgLink];

    dispatch_queue_t exampleQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0);
    dispatch_async(exampleQueue, ^{

        NSData  * imgData = [NSData dataWithContentsOfURL:imgURL];
        UIImage * image   = [UIImage imageWithData:imgData];
        dispatch_queue_t queue = dispatch_get_main_queue();
        dispatch_async(queue, ^{

            [imageView setImage:image];

        });
    });
}
  • 0
    какая часть медленная? загрузка?
Теги:
uiimageview

1 ответ

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

Я полагаю, что ваш div содержит только изображение

Если это так, то вы можете реализовать:

-(void)getImageCover {
   NSString * js      = @"document.getElementById("imgcover").src;"
   NSString * imgLink = [webViewForRecents stringByEvaluatingString:js];
   NSURL    * imgURL  = [NSURL urlWithString:imgLink];

   dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
     NSData  * imgData = [NSData dataWithContentsOfURL:imgURL];
     UIImage * image   = [UIImage imageWithData:imageData];
     dispatch_async(dispatch_get_main_queue(),{
       [imageView setImage:image];
     });
   });
}
  • 0
    была опечатка

Ещё вопросы

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