在Xcode中用Swift为自定义TableView单元格内图片设置圆角
为TableView单元格内的图片设置圆角的正确方法
你之前给table.layer.cornerRadius设置值,是给整个TableView添加圆角,自然不会影响单元格内的图片。要给嵌套在自定义单元格里的图片设置圆角,有以下几种可行方式:
方法一:在cellForRowAt方法中直接设置
在获取到自定义单元格后,直接给iconImageView设置圆角,同时开启clipsToBounds(否则圆角可能不生效):
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let beer = data[indexPath.row] let cell = table.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell cell.label.text = beer.title cell.iconImageView.image = UIImage(named: beer.imageName) // 为图片设置圆角 cell.iconImageView.layer.cornerRadius = 10 cell.iconImageView.clipsToBounds = true return cell }
方法二:在自定义TableViewCell类中配置
把图片圆角的配置放到自定义单元格类里,更符合代码模块化原则,避免在控制器中重复设置:
class TableViewCell: UITableViewCell { @IBOutlet weak var label: UILabel! @IBOutlet weak var iconImageView: UIImageView! override func awakeFromNib() { super.awakeFromNib() // 初始化时设置图片圆角 iconImageView.layer.cornerRadius = 10 iconImageView.clipsToBounds = true } }
这样单元格每次被复用时,图片都会自动应用圆角效果。
方法三:通过Storyboard/XIB可视化设置
如果是用Storyboard或XIB创建的单元格,也可以直接在界面编辑器中操作:
- 选中
iconImageView,打开右侧的属性检查器(Attributes Inspector) - 在View区域找到Corner Radius,输入10
- 勾选Clip to Bounds选项
无需编写代码即可实现图片圆角效果。
内容的提问来源于stack exchange,提问作者B_Brink
相关产品推荐
相关产品推荐

