我有一个 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 置于内容模式,照片就会从他的框架中拉出。
你能帮我吗?
最佳答案
第一个问题,需要异步加载图片。具体如何做到这一点有点超出了答案的范围(部分取决于你),但你可能想查看 NSURLConnection
或 NSOperation
和 NSOperationQueue
.
对于第二个问题,只需设置photo.clipsToBounds = YES
。
关于ios - 从 JSON 中一张一张加载照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001391/