我有一个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];
}
}
}
它运作正常,但我有两个问题。首先,我希望视图通过照片加载照片,因此用户无需等待cicle结束即可立即查看所有照片。其次我希望照片在中心裁剪,但只占据146x146的画面。但是,如果我把Top放在内容模式中,那么照片会从他的框架中拉出来。
你能帮帮我吗?
答案 0 :(得分:2)
对于第一个问题,您需要异步加载图像。究竟如何做到这一点有点超出了答案的范围(部分取决于你),但你可能想要研究NSURLConnection
或NSOperation
和NSOperationQueue
。
对于第二个问题,只需设置photo.clipsToBounds = YES
。
答案 1 :(得分:1)
答案 2 :(得分:0)
这是88fsantos的完美教程,我在我的网络应用程序中使用它,它的美妙之处在于它非常轻巧,易于编码!只是看这个视频....
http://www.youtube.com/watch?feature=player_embedded&v=H9AF_b8wSl8