0

20x20px の画像で setImageWithURL を使用して画像をロードする最も単純な例を使用すると、代わりにデフォルトのセルの画像ビューが 10x10px になります。

次のコードを使用して AFNetworking のカテゴリ メソッドを使用せずに画像を読み込むと、画像は期待どおり 20x20 に設定されます。

これがなぜなのかについての手がかりはありますか?(以前のコードを修正しました)。

 UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Whatever"];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Whatever"];
    }

    if (indexPath.row == 0) {
        [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://acidblue.com/images/Gender_Male.png"]];
    } else {
        cell.imageView.image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://acidblue.com/images/Gender_Male.png"]]];
    }

サンプル コードは、 https ://www.dropbox.com/s/ha9lw7suenolzb2/AFNetworkingCellExample.zip にあります。

AFNetworking 呼び出しのアイコンが毎回すぐに表示されないという奇妙な動作もあります。スレッドの問題かと思いましたが、確認したところメインスレッドにアイコンが設定されています。今のところ、アイコンが表示されない場合は、テーブルを下に引っ張ると再描画されます。これは、私が把握しようとしている別の問題です。

4

3 に答える 3

0

イメージビュー フレームを 20x20 に設定します

その画像のURLも教えていただけませんか?

于 2013-03-28T14:43:07.133 に答える
0

AFNetworking の内部動作はわかりませんが、UIImage がsizeピクセルを返すことを期待している場合、Retina ディスプレイでクエリを実行すると「予期しない」値が得られるのと同じ理由かもしれません。その理由は、Retina ディスプレイでのピクセルからポイントへの変換です。

アップルリファレンスから

@property(nonatomic, readonly) CGSize サイズ

iOS 4.0 以降では、この値はイメージの論理サイズを反映し、ポイント単位で測定されます。iOS 3.x 以前では、この値は常にピクセル単位で測定された画像の寸法を反映しています。

次の質問と回答を参照してください: (AFNetworking に固有のものではありません)

UIImage View が間違ったサイズの画像を表示する理由

于 2013-04-11T11:48:38.240 に答える
0

を " "contentModeに設定するだけです。UIImageViewUIViewContentModeScaleAspectFit

self.avatarImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,0,kAvatarDimension,kAvatarDimension)];
[self.avatarImageView setTranslatesAutoresizingMaskIntoConstraints:NO];
[self.avatarImageView setContentMode:UIViewContentModeScaleAspectFit];
[self.avatarImageView setImageWithURL:[NSURL URLWithString:@"http://example.comsomeimage.jpg"] placeholderImage:[UIImage imageNamed:@"avatar_default_black"]];
于 2014-01-10T19:04:34.667 に答える