2017-01-05 3 views
0

Я внедрившие iCarousel для моего баннера Вида на IPad с этим соответствующими кодами:дисплей iCarousel изображения из массива URL-образами

- (NSInteger)numberOfItemsInCarousel:(__unused iCarousel *)carousel 
{ 
    return (NSInteger)[self.bannerDatas count]; 
} 

- (UIView *)carousel:(__unused iCarousel *)carousel viewForItemAtIndex:(NSInteger)index reusingView:(UIView *)view 
{ 
    if (view == nil) 
    { 

     view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 215.0f, 155.0f)]; 
     ((UIImageView *)view).image = [UIImage imageNamed:[self.netImages objectAtIndex:index]]; 

     view.contentMode = UIViewContentModeCenter; 

    } 
    return view; 
} 

Но проблема лежит здесь на этой линии:

((UIImageView *)view).image = [UIImage imageNamed:[self.netImages objectAtIndex:index]]; 

netImages должно быть именем изображения, чтобы получить это, но мои netImages содержат массив URL-адресов изображений. Итак, мой вопрос заключается в том, как использовать URL-адрес изображения вместо имени для карусели?

Здесь ниже, как netImages получить данные:

- (NSArray *)setUpNetImages { 

    self.netImages = [NSMutableArray new]; 

    for (BannerData *data in self.bannerDatas) { 

     if (data.imageUrl != nil) { 
      [self.netImages addObject:data.imageUrl]; //original 

     } 
    } 

    return self.netImages; 
} 

ответ

0

Пожалуйста, используйте SDwebImage, которые обеспечивают вам функциональные возможности для загрузки изображения в асинхронном от URL заказчика и обновить изображение однажды загрузив done.and ваш UI никогда не остановить.

((UIImageView *)view)sd_setImageWithURL:[NSURL URLWithString:[self.netImages objectAtIndex:index]] 
     placeholderImage:[UIImage imageNamed:@"placeholder.png"]] 

Вам просто нужно добавить и импортировать

#import <SDWebImage/UIImageView+WebCache.h> 
Смежные вопросы