2013-03-06 50 views

回答

3

我在我的cellForRowAtIndexPath功能,這樣,當電池顯示

MWFeedItem *item = itemsToDisplay[indexPath.row]; 
if (item) { 
    NSString *htmlContent = item.content; 
    NSString *imgSrc; 

    // find match for image 
    NSRange rangeOfString = NSMakeRange(0, [htmlContent length]); 
    NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:@"(<img.*?src=\")(.*?)(\".*?>)" options:0 error:nil]; 

    if ([htmlContent length] > 0) { 
     NSTextCheckingResult *match = [regex firstMatchInString:htmlContent options:0 range:rangeOfString]; 

     if (match != NULL) { 
      NSString *imgUrl = [htmlContent substringWithRange:[match rangeAtIndex:2]]; 
      NSLog(@"url: %@", imgUrl); 

      //NSLog(@"match %@", match); 
      if ([[imgUrl lowercaseString] rangeOfString:@"feedburner"].location == NSNotFound) { 
       imgSrc = imgUrl; 
      } 
     } 
    } 
} 

注意,我也忽略了圖像,如果它有「Feedburner的」在其搜索圖像中使用此避免feedburner類型圖標的網址。

我也使用AFNetwork的類時,我顯示出圖像後

if (imgSrc != nil && [imgSrc length] != 0) { 
     [myimage setImageWithURL:[NSURL URLWithString:imgSrc] placeholderImage:[UIImage imageNamed:IMAGETABLENEWS]]; 
    } else { 
     NSLog(@"noimage"); 
     cell.imageView.image = [UIImage imageNamed:IMAGETABLENEWS]; 
     //[myimage setImage:[UIImage imageNamed:IMAGETABLENEWS]]; 
    } 

我已經離開我的評論的NSLog部分,所以你可以取消和檢查,如果你想

確保你有一個IMAGETABLENEWS不斷爲佔位符或根據需要擺脫那部分。

這只是一個非常簡單的HTML文本圖像檢查,並不全面。它符合我的目的,並可能幫助您將自己的邏輯變得更加細緻。

+1

GOOOOOOOD工作的人的圖像鏈接!感謝:-)) – stepik21 2013-07-16 13:30:55

+0

只是一個問題......有沒有辦法讓所有圖像換頁而不只是一個?謝謝:-) – stepik21 2013-07-16 15:02:54

+0

非常感謝你的工作。 NSRegularExpression成功。 – 2013-12-05 20:40:13

1

如果您MWFeedItem有嵌在它的enclosure-tag,你可能要考慮做以下的圖像:

MWFeedItem有一個名爲enclosures屬性。它是一個包含一個或多個字典的數組。

這個詞典產生於 - (BOOL)createEnclosureFromAttributes:(NSDictionary *)attributes andAddToItem:(MWFeedItem *)currentItemMWFeedParser.M)。

這些字典有三個按鍵(如果可用):urltype & length


那第一個可能是你正在尋找的那個。我設法得到它像這樣:

供稿示例

<item> 
     <title>Item title</title> 
     <link>http://www.yourdomain.com</link> 
     <description>Item description</description> 
     <pubDate>Mon, 01 Jan 2016 12:00:00 +0000</pubDate> 
     <enclosure url="http://www.yourdomain.com/image.jpg" length="0" type="image/jpeg"></enclosure> 
     <category>Algemeen</category> 
    </item> 

請注意裏面<enclosure></enclosure>

YourViewController.m

- (void)feedParser:(MWFeedParser *)parser didParseFeedItem:(MWFeedItem *)item { 
    NSArray *EnclosureArray = item.enclosures; 
    NSDictionary *ImageDict = [EnclosureArray objectAtIndex:0]; // 0 Should be replaced with the index of your image dictionary. 
    NSString *ImageLink = [ImageDict objectForKey:@"url"]; 

    // Returns: http://www.yourdomain.com/image.jpg 
}