我创建了一个表视图,并用文本填充其单元格.我正在尝试做的是向细胞添加一个图像,但是发生的事情是图像在整个细胞中徘徊而且它看起来很糟糕......
这就是我正在做的事情: 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"];
Run Code Online (Sandbox Code Playgroud)
但我得到的输出仍然是:

我尝试了其他一些方法:
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(30, 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];
Run Code Online (Sandbox Code Playgroud)
但现在我得到了这个:

Tia*_*ida 15
首先,您需要将单元格的imageView设置为所需的最大大小.然后通过Interface Builder或通过代码确保您拥有正确的内容模式:
cell.imageView.contentMode = UIViewContentModeScaleAspectFit;
Run Code Online (Sandbox Code Playgroud)
基本上在这种模式下,它会尝试适合您为图像创建的空间,但它会保持纵横比.

对于角落,您将需要QuartzCore,您可以使用以下代码进行设置:
#import <QuartzCore/QuartzCore.h>
...
cell.imageView.layer.cornerRadius = 4;
cell.imageView.layer.masksToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
UPDATE
如果你的imageView不是插座,你最好自己添加一个imageView到单元格.您可以(并且您应该)通过storyboard/xib执行此操作.本教程可能对您有所帮助,尽管互联网上有很多这样的教程.此stackoverflow问题为该问题提供了其他解决方案.
| 归档时间: |
|
| 查看次数: |
17666 次 |
| 最近记录: |