ios - 从 JSON 中一张一张加载照片

标签 ios xcode json image gallery

我有一个 JSON 服务,我在其中使用了一些照片。我想从中制作一个缩略图画廊:

    -(void)fillPhotos:(NSMutableArray *)json{
    _loadingLabel.alpha=0;
    [SV setScrollEnabled:YES];
    if(json.count>0){
        NSDictionary *json_dictionary=[json objectAtIndex:0]; 
        NSInteger i=0;
        for(i=0;i<[[json_dictionary objectForKey:@"Photos"] count];i++){
        NSDictionary *photosDic =[[json_dictionary objectForKey:@"Photos"] objectAtIndex:i] ;
        NSString *imageUrl = [photosDic objectForKey:@"URI"];
        UIImageView* photo;
        CGRect viewRect;
            if(i % 2){
            viewRect = CGRectMake(164,146*(i/2)+10*(i/2), 146, 146);
            NSLog(@"par");
            }else{
            viewRect = CGRectMake(10,146*(i/2)+10*(i/2), 146, 146);   
                NSLog(@"impar");
            }
            photo = [[UIImageView alloc] initWithFrame:viewRect];
            photo.image=[UIImage imageWithData: [NSData dataWithContentsOfURL:[NSURL URLWithString: imageUrl]]];
            [SV addSubview:photo];
            SV.contentSize=CGSizeMake(320,146*i+146);
            [SV reloadInputViews];
        }
    }
}

它工作正常,但我有两个问题。首先,我希望 View 逐张照片加载,这样用户就不必等待循环结束就可以一次查看所有照片。其次,我希望照片在中心裁剪,但只占用 146x146 帧。但是,如果我将 Top 置于内容模式,照片就会从他的框架中拉出。

你能帮我吗?

最佳答案

第一个问题,需要异步加载图片。具体如何做到这一点有点超出了答案的范围(部分取决于你),但你可能想查看 NSURLConnectionNSOperationNSOperationQueue.

对于第二个问题,只需设置photo.clipsToBounds = YES

关于ios - 从 JSON 中一张一张加载照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001391/

相关文章:

javascript - 使用 Json 和 BS4 抓取 HTML 中的脚本标签

java - 在 Jackson(和 MrBean)的反序列化时使用多态性

ios - 减少重复的 Cocos2D 代码?

ios - 在 Swift 中获取两个 NSDate() 实例之间的时间间隔时遇到问题

ios - iOS 7 上的自动布局崩溃,在 iOS 8 上运行良好

xcode - 将现有的实现文件添加到 Xcode 项目将不起作用

ios - 在 Swift 中做一个简单的淡入淡出动画?

ios - 更改 UITableViewCell 附件详细信息按钮的颜色

ios - 如何在两个不同的 UIView 之间设置纵横比,而不是在一个 UIView 上设置纵横比?

php - 通过 jquery 或 php 删除 json 中包含值的字符串