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

你能提供那个图片的网址吗?

于 2013-03-28T14:43:07.133 回答
0

只需设置contentModeUIImageViewUIViewContentModeScaleAspectFit”。

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 回答
0

我不知道 AFNetworking 的内部工作原理,但这可能是相同的原因,如果您希望 UIImagesize返回像素,则在 Retina 显示器上查询时会得到“意外”值。原因是在 Retina 显示屏上将像素转换为点

来自苹果参考

@property(nonatomic, readonly) CGSize 大小

在 iOS 4.0 及更高版本中,该值反映了图像的逻辑大小,以磅为单位。在 iOS 3.x 及更早版本中,此值始终反映以像素为单位测量的图像尺寸。

请参阅以下问题和答案:(不特定于 AFNetworking)

为什么 UIImage 视图显示错误的图像大小

于 2013-04-11T11:48:38.240 回答