如何在 iOS 中更改单元格图像的大小

Posted

技术标签:

【中文标题】如何在 iOS 中更改单元格图像的大小【英文标题】:how to change size of cell image in iOS 【发布时间】:2014-03-25 16:08:24 【问题描述】:

我有一个带有图像的单元格。我正在尝试像这样以编程方式更改单元格中图像的大小:

cell.myImage.image = [UIImage imageNamed:@"my_icon"];
CGSize size = CGSizeMake(10, 10);
[self imageWithImage:cell.goalTypeImage.image scaledToSize:size];

图片大小如下:

- (UIImage*)imageWithImage:(UIImage*)image
              scaledToSize:(CGSize)newSize

    UIGraphicsBeginImageContext( newSize );
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;

我也试过这个不起作用:

cell.myImage.frame = CGRectMake(
cell.myImage.frame.origin.x,
cell.myImage.frame.origin.y, 50, 50);
cell.myImage.image = [UIImage imageNamed:@"icon"];

有人知道为什么图片没有改变大小吗?

【问题讨论】:

如何编译?您在 imageWithImage 方法定义的末尾有一个额外的分号错字。 图片大小变了,但UIImageView的大小没有变化。 你不要使用imageWithImage:scaledToSize:的返回值。 【参考方案1】:

您没有对返回的图像做任何事情。这应该有效:

CGSize size = CGSizeMake(10, 10);
cell.myImage.image = [self imageWithImage:cell.goalTypeImage.image scaledToSize:size];

【讨论】:

那么你的代码中的其他地方有问题,@Atma。 它是一个自定义单元格,这有关系吗?【参考方案2】:

我认为你应该像这样使用 UITableViewCell 的原生图像:

cell.imageView.image = myImage;

然后你可以调整它的大小:

cell.imageView.transform = CGAffineTransformMakeScale(widthScale, heightScale);

你有一些有趣的 UITableViewCell 的属性,比如 textLabel、detailTextLabel 和 imageView。

【讨论】:

您是否使用自定义视图创建了自定义表格视图单元格?还是 tableView:cellForRowAtIndexPath 的默认 UITableViewCell ? 您是否将界面生成器中的 uiimage 连接到您的 myImage 属性?

以上是关于如何在 iOS 中更改单元格图像的大小的主要内容,如果未能解决你的问题,请参考以下文章

在iOS中选择单元格时如何以编程方式更改原型单元格中的标签文本颜色和图像

如何在 iOS 中动态更改 UICollectionView 单元格高度

如何在 iOS 中同时为单元格和表格更改设置动画?

如何使用分页更改 tableview 自定义单元格中的 imageview 图像。

如何根据标签文本快速更改表格视图单元格高度?

在uitableview中选择时如何更改自定义单元格图像和标签字体颜色?