0

NSArray图像有:

2012-08-15 10:12:39.687 test[4200:11103] (
    "http://192.168.1.165/Images/Demo/1.jpg",
    "http://192.168.1.165/Images/Demo/0.jpg",
    "http://192.168.1.165/Images/Demo/0.jpg",
    "http://192.168.1.165/Images/Demo/2.jpg",
    "http://192.168.1.165/Images/Demo/2.jpg",
    "http://192.168.1.165/Images/Demo/2.jpg",
    "http://192.168.1.165/Images/Demo/2.jpg",
    "http://192.168.1.165/Images/Demo/1.jpg",
    "http://192.168.1.165/Images/Demo/1.jpg",
    "http://192.168.1.165/Images/Demo/1.jpg" )

和代码.m:

dispatch_async(htvque, ^{
        NSData* data = [NSData dataWithContentsOfURL: tophotfilm];

        NSError* error;

        json = [NSJSONSerialization JSONObjectWithData:data
                                               options:kNilOptions 
                                                 error:&error];

        NSDictionary *list = [json objectForKey:@"List"];


        NSMutableArray *arrPoster =[[NSMutableArray alloc]init];
        for(NSString *po in list)
        {
            NSString *poster = [po valueForKey:@"Poster"];
            [arrPoster addObject:poster];

        }
        myArray = [NSArray arrayWithArray:arrPoster];
        NSArray *colors = [[NSArray alloc] initWithObjects:[UIColor redColor], 
                           [UIColor greenColor], [UIColor magentaColor],
                           [UIColor blueColor], [UIColor orangeColor], 
                           [UIColor brownColor], [UIColor grayColor], nil];
            //NSLog(@"%@",colors);
            NSLog(@"%@",myArray);
        for (int i = 0; i < myArray.count; i++) {
                //NSLog(@"%@",myArray.count);
            NSString *imageName = [NSString stringWithFormat:@"%@", i];
            UIImage *image = [UIImage imageNamed:imageName];
            UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

            CGRect rect = imageView.frame;

            rect.origin.x = self.scrollView.frame.size.width * i;
            rect.origin.y = 0;
            rect.size = scrollView.frame.size;

            [self.scrollView addSubview:imageView];

        }

        scrollView.pagingEnabled = YES;
        scrollView.showsHorizontalScrollIndicator = NO;
        scrollView.showsVerticalScrollIndicator = NO;
        scrollView.contentSize = CGSizeMake(scrollView.frame.size.width *
        myArray.count,scrollView.frame.size.height);
        pageControl.currentPage = 0;
        pageControl.numberOfPages = myArray.count;
        [super viewDidLoad];
    });

使用 NSArray 颜色,它工作正常,但 NSArray 图像有一些错误。


滚动视图不显示列表图像,它显示第一张图像,任何人都知道为什么......

dispatch_async(dispatch_get_main_queue(), ^{ for (int i = 0; i < myArray.count; i++) { //NSString *imageName = [NSString stringWithFormat:@"%@",[myArray objectAtIndex:i]];

                NSURL *urlImage = [NSURL URLWithString:[NSString stringWithFormat:@"%@",[myArray objectAtIndex:i]]];
                //NSLog(@"%@",urlImage);
                UIImage *image = [UIImage imageWithData:[NSData dataWithContentsOfURL:urlImage]];
                UIImageView *imageView = [[UIImageView alloc] initWithImage:image];

                CGRect rect = imageView.frame;
                rect.size.height = imgHeight;
                rect.size.width = imgWidth;
                imageView.frame = rect;
                imageView.tag = i;

                //rect.size = scrollView.frame.size;
                [scrollView addSubview:imageView];
            }

            scrollView.pagingEnabled = YES;
            scrollView.showsHorizontalScrollIndicator = NO;
            scrollView.showsVerticalScrollIndicator = NO;
            scrollView.contentSize = CGSizeMake(scrollView.frame.size.width *

myArray.count,scrollView.frame.size.height); pageControl.currentPage = 0; pageControl.numberOfPages = myArray.count; });

4

2 回答 2

0

您使用imageNamed:的只能用于项目中的图像,如果我理解您的问题,您正在尝试从服务器访问它们。试试这个UIImage方法:imageWithData:

NSURL *url = [NSURL URLWithString:[myArray objectAtIndex:i]];
UIImage *img = [UIImage imageWithData:[NSData dataWithContentsOfURL:url]];
于 2012-08-15T14:40:35.953 回答
0

检查这行代码

NSString *imageName = [NSString stringWithFormat:@"%@", i];

您的图像名称将只是 1、2 等,而不是打印在日志中的图像名称,

它应该是这样的

[myArray objectATIndex:i];

于 2012-08-15T04:05:12.250 回答