iphone - 如何在iPhone中下载并显示向下滚动scrollview的服务器图像

标签 iphone ios objective-c

我是 iPhone 编程新手。

使用下面的代码我可以从服务器下载并显示所有图像。但在服务器中我有超过 1000 张图像。所以使用下面的代码我可以下载并在 ScrollView 中显示为 3*3 缩略图。

但是我想要的意味着首先我必须下载并在 ScrollView 中以 3*3 缩略图的形式显示 15 个图像。

如果我向下滚动意味着我必须显示事件指示器,然后下载下一个表格 16 到 30 个图像,同样,如果我滚动意味着我想下载并以缩略图形式显示 31 到 45 个图像。

我不想从服务器下载所有图像。

谁能告诉我我该怎么做。

- (void)viewDidLoad
{
    URLs = [[NSMutableArray alloc]init];

    for (NSString *path in latestiamge)
    {
        NSURL *URL = [NSURL URLWithString:path];

        if (URL)
        {
            [URLs addObject:URL];
        }
        else
        {
            NSLog(@"'%@' is not a valid URL", path);
        }
    }

    self.imageURLs = URLs;

    myScrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0.0, 84.0, 320.0, 840.0)];
    myScrollView.delegate = self;
    myScrollView.contentSize = CGSizeMake(320.0, 840.0);
    myScrollView.backgroundColor = [UIColor whiteColor];

    [self.view addSubview:myScrollView];

    float horizontal = 2.0;
    float vertical = 2.0;

    for(int i=0; i<[imageURLs count]; i++)
    {
        if((i%3) == 0 && i!=0)
        {
            horizontal = 5.0;
            vertical = vertical + 100.0 + 5.0;
        }

        CGRect frame;
        frame.size.width=100.0;
        frame.size.height=100.0;
        frame.origin.x=0;
        frame.origin.y=0;

        AsyncImageView *imageView = [[AsyncImageView alloc] initWithFrame:frame];
        imageView.contentMode = UIViewContentModeScaleAspectFill;
        imageView.clipsToBounds = YES;
        imageView.tag = i;
        UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]
                                             initWithTarget:self
                                             action:@selector(actionHandleTapOnImageView:)];

        imageView.userInteractionEnabled = YES;
        [imageView addGestureRecognizer:singleTap];

        [myScrollView addSubview:imageView];
        [myScrollView addSubview:imageView];

        horizontal = horizontal + 100.0 + 5.0;
    }

    [myScrollView setContentSize:CGSizeMake(320.0, vertical + 3900.0)];

    [super viewDidLoad];
}

最佳答案

有一个很好的基本类,您可以使用它来异步下载和显示图像。

SDWebImage

关于iphone - 如何在iPhone中下载并显示向下滚动scrollview的服务器图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17184593/

相关文章:

ios - NSURLSession任务执行顺序

ios - 图像未根据方向变化调整大小

objective-c - XCode 6.4 抛出未将 Objective-C 函数转换为 Swift 的错误

ios - ios 7中的UINavigationbar后退按钮

iphone - 如何应用正则表达式和/或清理电话线?

ios - iOS 设备未收到 Urban Airship iOS 推送通知

iphone - 有人知道纯 UIKit 游戏源码吗?

ios - 半透明模态视图 Controller 不覆盖状态栏

iphone - 如何在 NSThread 中等待直到 iOS 中发生某些事件?

ios - Interface Builder 如何与私有(private) IBOutlet 交互?