iCarousel 显示来自图像 URL 数组的图像

iCarousel display images from array of images' URLs

我在 iPad 上使用以下相关代码为我的横幅视图实施了 iCarousel:

- (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 包含图像数组 URLs。所以我的问题是如何使用图像 URL 而不是 Carousel 的名称?

下面是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;
}

请使用 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>