gpt4 book ai didi

ios - 表格 View 单元格中的圆形图像 swift

转载 作者:搜寻专家 更新时间:2023-10-30 22:22:39 26 4
gpt4 key购买 nike

我试图在我的表格 View 的每一行中创建一些圆形图像。我已经按照教程进行操作,但我的图像变成了菱形而不是圆形。我做错了什么:

 var cellImage = UIImage(named: pic)
cell.imageView!.image = cellImage
cell.imageView!.layer.frame = CGRectMake(0, 0, 190, 190)
cell.imageView!.layer.borderWidth = 0.5
cell.imageView!.layer.masksToBounds = false
cell.imageView!.layer.borderColor = UIColor.blueColor().CGColor

cell.imageView!.layer.cornerRadius = cell.imageView!.layer.frame.height/2
cell.imageView!.clipsToBounds = true

最佳答案

如果您要创建自己的 imageView,最好在自定义 TableViewCell 中设置 cornerRadius。

class CircularTableViewCell: UITableViewCell {
@IBOutlet weak var circularImageView: UIImageView!
override func layoutSubviews() {
circularImageView.layer.cornerRadius = circularImageView.bounds.height / 2
circularImageView.clipsToBounds = true
}

注意 cornerRadius 属性不能保证 View 绝对是圆的,除非您将 imageView 的宽高比设置为 1:1。另一种创建圆形 View 的方法是使用蒙版。

public extension UIView {
public func round() {
let width = bounds.width < bounds.height ? bounds.width : bounds.height
let mask = CAShapeLayer()
mask.path = UIBezierPath(ovalInRect: CGRectMake(bounds.midX - width / 2, bounds.midY - width / 2, width, width)).CGPath
self.layer.mask = mask
}

这将允许您使用任何 UIView 调用 round() 并确保 View 始终是圆形的。例如

class CircularTableViewCell: UITableViewCell {
@IBOutlet weak var circularImageView: UIImageView!
override func layoutSubviews() {
circularImageView.round()
}

关于ios - 表格 View 单元格中的圆形图像 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30685076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com