1

私は拡張可能な TableView ( HVTableView ) を使用しており、その中に URL からダウンロードされるいくつかの画像を設定しています。問題は、ストーリーボードとコードですべてを設定したにもかかわらず、画像が AspectFill として設定されていないことです。

ストーリーボード: ここに画像の説明を入力

コード:

UIImageView *imageView = (UIImageView *)[cell viewWithTag:0];
if (object.imageFile) {
            
            
            [object.imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
                if (!error) {
                    UIImage *image = [UIImage imageWithData:data];
                    [imageView setClipsToBounds:YES];
                    [imageView setContentMode:UIViewContentModeScaleAspectFill];
                    [imageView setImage:image];
                }
                else [imageView setImage:[UIImage imageNamed:@"placeholder"]]; //initiL state
            }];
            
        }
        
        else {
            [imageView setImage:[UIImage imageNamed:@"placeholder"]];
        }

結果:

ここに画像の説明を入力

ローカル画像を使用すると、正方形とアスペクトフィル、または contentMode が設定されているものとして完全に表示されます

4

2 に答える 2

0

以下のコメントに基づいて更新

これを試してみませんか?

UIImage *image = [UIImage imageWithData:data];
image = [UIImage imageWithCGImage:image.CGImage];

問題はUIImageView、画像のサイズに基づいてセルの高さを計算しているテーブル ビューではありません。

テーブルビューコントローラーでオーバーライドtableView:heightForRowAtIndexPath:して、固定値を返してみてください。

于 2015-12-22T11:32:21.233 に答える