0

setImageWithURLを使用してオンライン画像を読み込むと0.000000になりますが、ローカル画像を読み込むと正しい幅になります。

NSURL * url1=[NSURL URLWithString:@"http://img.hb.aicdn.com/7f46b5eb65320f18f797a4a26ebe9ba328b547832f7b3-KYR0Xn_fw192"];
UIImageView * img2=[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 192,400)];
[img2 setImageWithURL:url1];
//[img2 setImage:[UIImage imageNamed:@"0.gif"]];
//load local image

[self.view addSubview:img2];
CGFloat height1=img2.image.size.width;
NSLog(@"%f",height1);
4

1 に答える 1

0

私はこれが非常に古い質問であることを知っていますが、私はしばらく前に同じ問題を抱えており、私の答えは同じ問題に遭遇した誰かを助けることができると思いました。

画像の幅を取得するには、SDWebImageManagerを使用して画像を個別にダウンロードする必要があります。私はそれが彼らのウィキページで説明されていると確信しています。

タスクを実行するためのサンプルコードは次のとおりです。

-(UIImage *)downloadImageAsync:(NSString *)imageKey
{
    NSLog(@"image key : %@",imageKey);
    __block UIImage *returnedImage;
    SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadWithURL:[NSURL URLWithString:imageKey] options:0 progress:^(NSUInteger receivedSize, long long expectedSize){
        NSLog(@"received size %d expected size %lld", receivedSize, expectedSize);

    }completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType,BOOL finished){
        if(image && finished) {
            returnedImage = image;
        }
    }];

    if(returnedImage == nil) {
        NSLog(@"Returned Image Nil");
    }
    return returnedImage;
}

したがって、UIImageのダウンロードが完了すると、UIImageの幅と高さを取得できます。お役に立てれば。

乾杯。

于 2013-03-14T04:18:00.377 に答える