0

私はいくつかの写真を使用する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];
        }
    }
}

問題なく動作しますが、問題が 2 つあります。まず、ビューに写真ごとにロードするようにしたいので、ユーザーはすべての写真を一度に表示するためにシクルの終わりを待つ必要はありません。次に、写真を中央でトリミングしたいのですが、146x146 フレームだけを占有します。しかし、トップをコンテンツモードにすると、写真が彼のフレームから引き出されます。

それを手伝ってもらえますか?

4

1 に答える 1

2

最初の質問では、画像を非同期で読み込む必要があります。正確にこれを行う方法は、回答の範囲を少し超えています (部分的にはあなた次第です) が、おそらく or と のいずれかを調べたいと思うNSURLConnectionでしょNSOperationNSOperationQueue

2 番目の質問については、 を設定するだけですphoto.clipsToBounds = YES

于 2012-06-12T17:18:07.907 に答える