如何以编程方式显示水平UIscrollView图像

时间:2014-07-19 05:51:10

标签: ios objective-c uiscrollview uiimageview

我为Url获取了图像,然后在SCrollView上显示。我这样的代码

 NSMutableArray *al=[NSJSONSerialization JSONObjectWithData:webData options:0 error:nil];
    for (NSDictionary *diction in al)
    {


       NSString *geting =[diction valueForKey:@"dealimage"];
        NSLog(@"dealimage is %@",geting);

        NSData *getdata=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting]];
        NSLog(@"good day %@",getdata);
        dataimages=[UIImage imageWithData:getdata];
        NSLog(@"dataimages %@",dataimages);

        [imagesarray addObject:dataimages];


     }

scrollView=[[UIScrollView alloc]init];

    scrollView.delegate = self;
    scrollView.scrollEnabled = YES;
    int scrollWidth = 100;
    scrollView.contentSize = CGSizeMake(scrollWidth,100);
    scrollView.frame=CGRectMake(0, 0, 320, 100);
    scrollView.backgroundColor=[UIColor yellowColor];

    [self.view addSubview:scrollView];

    int xOffset = 0;
    imageView.image = [UIImage imageNamed:[imagesName objectAtIndex:0]];

    for(int index=0; index < [imagesName count]; index++)
    {

        UIImageView *img = [[UIImageView alloc] init];
        img.bounds = CGRectMake(10, 10, 50, 50);
        img.frame = CGRectMake(5+xOffset, 0, 160, 110);
        NSLog(@"image: %@",[imagesName objectAtIndex:index]);
        img.image = [UIImage imageNamed:[imagesName objectAtIndex:index]];
        [images insertObject:img atIndex:index];
        scrollView.contentSize = CGSizeMake(scrollWidth+xOffset,110);

        [scrollView addSubview:[images objectAtIndex:index]];

        xOffset += 170;
    }

我的问题是ScrollView正在显示但是图片没有添加所以请告诉我我的代码中有什么问题

现在我需要这样image2

我知道如何获取Url.now的图像我需要显示图像水平ScrollView所以请给我任何关于图像的想法。

感谢高级

4 个答案:

答案 0 :(得分:6)

您的编码很好,但是您分配了[scrollView addSubview:[images objectAtIndex:index]];的值,这不是很好的,我修改您的代码,根据您的结果旺旺

UIScrollView  *scrollVie=[[UIScrollView alloc]init];

scrollVie.delegate = self;
scrollVie.scrollEnabled = YES;
int scrollWidth = 100;
//scrollVie.contentSize = CGSizeMake(scrollWidth,100);
scrollVie.frame=CGRectMake(0, 51, self.view.frame.size.width, 100);
scrollVie.backgroundColor=[UIColor redColor];




int xOffset = 0;

for(int index=0; index < [imagesarray count]; index++)
{

    UIImageView *img = [[UIImageView alloc] initWithFrame:CGRectMake(xOffset,10,160, 110)];
    img.image = (UIImage*) [imagesarray objectAtIndex:index];

    [scrollVie addSubview:img];

    xOffset+=100;


}

[self.view addSubview:scrollVie];

scrollVie.contentSize = CGSizeMake(scrollWidth+xOffset,110);

答案 1 :(得分:2)

Apple创建的“官方”示例会查看StreetScroller演示。

答案 2 :(得分:1)

对于图片中显示的所需结果,即水平滚动, 使用ScrollView而不是tableview。

将滚动窗格设置为水平,并在循环内动态创建imageview并在其中插入图像

希望它有所帮助:)

答案 3 :(得分:0)

而不是使用表视图,为什么不使用他们的代理来使用UICollectionView。

你可以参考这个 - Creating a UICollectionView programmatically

这是达到您要求的最佳方式。