无法裁剪 cell.imageView?来圈出。
我在很多论坛上都没找到。
我将 tableView 用于标准单元格(非自定义)。
我的代码:
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "channelCell", for: indexPath)
cell.accessoryType = .disclosureIndicator
cell.imageView?.layer.cornerRadius = cell.frame.size.height / 2
cell.imageView?.clipsToBounds = true
cell.imageView?.kf.setImage(with: URL(string: channels[indexPath.row].userUrlImage))
return cell
}
我得到了这张图片,请在第二位用户上查看图片
UPD。
答案 0 :(得分:0)
您应该在之前为“图像”视图设置框架:
credentials: 'same-origin'
答案 1 :(得分:0)
在您填充单元格时,您的单元格并未对其框架进行布局。
1)一种方法是调用layoutIfNeeded()然后设置转角半径,等于cell.imageView?.layer.cornerRadius = cell.imageView?.bounds.frame.height / 2
但这从性能的角度来看并不是最好的,因为您创建了多余的布局通道。
2)另一种方法是创建UITableViewCell的子类并覆盖它的layoutSubviews。然后在layoutSubviews中设置拐角半径。
3)从可重用性的角度来看,最简单,最好的方法是创建UIImageView的子类并覆盖布局子视图。
这是第三种方法的代码
/*
Create custom UITableViewCell and use CircledImageView instead of UIImageView.
*/
class CircledImageView: UIImageView {
override func layoutSubviews() {
super.layoutSubviews()
self.layer.cornerRadius = self.bounds.size.height / 2
}
}
答案 2 :(得分:0)
两个单元格的高度都不同,因此您可以通过以下代码设置高度并获得正确的圆形图像。
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 50 // set your cell height
}