如何恢复填充图像的 UITableViewCell 的圆角?
Posted
技术标签:
【中文标题】如何恢复填充图像的 UITableViewCell 的圆角?【英文标题】:How to restore rounded corners for a UITableViewCell filled with an image? 【发布时间】:2009-11-18 13:57:19 【问题描述】:我有一个 UITableViewCell,我想使用 image 属性来填充它。当它首先出现在分组的 UITableView 中时,我希望它具有标准的圆角。
不幸的是,图像也填充了圆角。有没有办法在不使用透明图像的情况下保留它们?
【问题讨论】:
【参考方案1】:您可以使用其 layer 属性以编程方式对任何视图的角进行圆角处理。如果您使用图层的cornerRadius 属性,您应该能够获得您想要的结果。
#include <QuartzCore/QuartzCore.h>
UIImage *myImage = [UIImage imageNamed:@"image.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:myImage];
imgView.layer.cornerRadius = 10.0;
如果你只是想弄圆一些角落,你应该查看 UIBezierPath API 并使用路径来掩盖你的图像。这未经测试,但它应该为您指明正确的方向:
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.bounds
byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = imageView.frame;
maskLayer.path = path;
imageView.layer.mask = maskLayer;
【讨论】:
对于第一个单元格,我只希望在右上角和左上角使用圆角,所以这并没有多大帮助。无论如何,谢谢 @johnl 我知道这已经过时了,但我已经更新了我的答案,包括一种只绕过某些角落的方法【参考方案2】:我刚刚使我的不透明图像具有圆角。截取屏幕截图以获取圆角的尺寸,然后将其用作图像的基础。
【讨论】:
以上是关于如何恢复填充图像的 UITableViewCell 的圆角?的主要内容,如果未能解决你的问题,请参考以下文章
iOS - 在后台下载并分配给 UITableViewCell imageView 的图像未填充视图
用 JSON Base64 填充 UITableViewCell?
从 Firebase 填充数组传递 UITableViewCell 数据