我创建了一个表视图,并用文本填充它的单元格.我想要做的是向单元格添加一个图像,但发生的是图像正在整个单元格,它看起来很糟糕…
这是我在做什么: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给出了该问题的其他解决方案.