0

iPhoneプログラミング初心者です。

以下のコードを使用すると、サーバーからすべての画像をダウンロードして表示できます。しかし、サーバーには数千を超える画像があります。以下のコードを使用すると、ダウンロードしてスクロールビューに 3*3 サムネイルとして表示できます。

しかし、私が望むのは、最初にスクロールビューで 15 枚の画像を 3*3 サムネイルとしてダウンロードして表示する必要があるということです。

下にスクロールすると、アクティビティ インジケーターを表示し、次のフォームから 16 ~ 30 枚の画像をダウンロードする必要があることを意味します。

サーバーからすべての画像をダウンロードしたくありません。

どうすればこれを行うことができるか教えてください。

- (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];
}
4

3 に答える 3

1

画像を非同期にダウンロードして表示するために使用できる優れた基本的なクラスがあります。

SDWebImage

于 2013-06-19T06:55:45.223 に答える