iOS – UITableViewCell图像调整/调整大小

我创建了一个表视图,并用文本填充它的单元格.我想要做的是向单元格添加一个图像,但发生的是图像正在整个单元格,它看起来很糟糕…

这是我在做什么:cell.imageView.image = [UIImage imageNamed:@“test2.jpeg”];

这就是它的样子:

我试图让它看起来像是:

为了获得所需的结果,我如何调整表视图单元格的大小?

更新

这是我以前在以下答案中提出的建议:

cell.imageView.frame = CGRectMake(0.0f,0.0f,30.0f,30.0f);
cell.imageView.layer.cornerRadius = 8.0;
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.imageView.layer.masksToBounds = YES;
cell.imageView.image = [UIImage imageNamed:@"test2.jpeg"];

但我得到的输出仍然是:

更新2.0

我试过一些建议的方法:

UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(30,30,30)];
imageView.backgroundColor = [UIColor clearColor];
[imageView.layer setCornerRadius:8.0f];
[imageView.layer setMasksToBounds:YES];
[imageView setImage:[UIImage imageNamed:@"test2.jpeg"]];
[cell.contentView addSubview:imageView];

但现在我得到这个:

解决方法

首先,您需要将单元格的imageView设置为所需的最大大小.然后通过Interface Builder或通过代码确保您具有正确的内容模式:
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;

基本上使用这种模式,它将尝试适应您为图像创建的空间,但它将保持宽高比.

Jackson发布了一个很好的图像,显​​示内容模式here

对于角落,您将需要QuartzCore,您可以使用以下代码进行设置:

#import <QuartzCore/QuartzCore.h>

...

cell.imageView.layer.cornerRadius = 4;
cell.imageView.layer.masksToBounds = YES;

UPDATE

如果您的imageView不是插座,那么最好自己添加一个imageView到单元格.你可以(而且你应该)通过storyboard / xib来做到这一点. This tutorial might help you就是这样,虽然互联网上还有很多. This stackoverflow question给出了该问题的其他解决方案.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...