swift 中的圆形图像
round image in swift
我正在尝试使图像变圆。我一直使用 maskCircle 但这次它不起作用。我在 UICollectionViewCell 的 awakeFromNib 中编写了代码,但我无法使用 viewDidLayoutSubviews,因为我在 cellForItemAt 函数中将单元格出队。所以这是代码:
@IBOutlet weak var storeLogo: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
storeLogo.maskCircle()
storeLogo.clipsToBounds = true
}
并且 imageView 看起来像这样:
imageView
编辑:
它似乎工作正常,但我又遇到了问题。
这是现在 awakeFromNib 中的代码:
super.awakeFromNib()
storeLogo.clipsToBounds = true
storeLogo.layer.cornerRadius = storeLogo.frame.width / 2
let gradient = CAGradientLayer()
gradient.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 55, height: 55))
gradient.startPoint = CGPoint(x: 0, y: 1)
gradient.endPoint = CGPoint(x: 1, y: 0)
gradient.colors = [Color.storeName?.cgColor, Color.idTint?.cgColor]
let shape = CAShapeLayer()
shape.lineWidth = 2
let radius: CGFloat = 27
shape.path = UIBezierPath(roundedRect: CGRect(x: -2.5, y: -14, width: 2.0 * radius, height: 2.0 * radius), cornerRadius: radius).cgPath
shape.position = CGPoint(x: self.frame.midX - radius, y: self.frame.midY - radius)
shape.strokeColor = UIColor.black.cgColor
shape.fillColor = UIColor.clear.cgColor
gradient.mask = shape
self.storeLogo.layer.addSublayer(gradient)
并且图片不是圆形的,正如您在这张图片中看到的那样:imageView
我
我不知道为什么图片现在不是圆了。有什么想法吗?!
如果您想在 UIImageView
上做圆形剪辑,请设置 cornerRadius
of UIImageView
。
storeLogo.layer.cornerRadius = storeLogo.frame.width / 2
storeLogo.clipsToBounds = true
我正在尝试使图像变圆。我一直使用 maskCircle 但这次它不起作用。我在 UICollectionViewCell 的 awakeFromNib 中编写了代码,但我无法使用 viewDidLayoutSubviews,因为我在 cellForItemAt 函数中将单元格出队。所以这是代码:
@IBOutlet weak var storeLogo: UIImageView!
override func awakeFromNib() {
super.awakeFromNib()
storeLogo.maskCircle()
storeLogo.clipsToBounds = true
}
并且 imageView 看起来像这样: imageView
编辑: 它似乎工作正常,但我又遇到了问题。 这是现在 awakeFromNib 中的代码:
super.awakeFromNib()
storeLogo.clipsToBounds = true
storeLogo.layer.cornerRadius = storeLogo.frame.width / 2
let gradient = CAGradientLayer()
gradient.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 55, height: 55))
gradient.startPoint = CGPoint(x: 0, y: 1)
gradient.endPoint = CGPoint(x: 1, y: 0)
gradient.colors = [Color.storeName?.cgColor, Color.idTint?.cgColor]
let shape = CAShapeLayer()
shape.lineWidth = 2
let radius: CGFloat = 27
shape.path = UIBezierPath(roundedRect: CGRect(x: -2.5, y: -14, width: 2.0 * radius, height: 2.0 * radius), cornerRadius: radius).cgPath
shape.position = CGPoint(x: self.frame.midX - radius, y: self.frame.midY - radius)
shape.strokeColor = UIColor.black.cgColor
shape.fillColor = UIColor.clear.cgColor
gradient.mask = shape
self.storeLogo.layer.addSublayer(gradient)
并且图片不是圆形的,正如您在这张图片中看到的那样:imageView 我
我不知道为什么图片现在不是圆了。有什么想法吗?!
如果您想在 UIImageView
上做圆形剪辑,请设置 cornerRadius
of UIImageView
。
storeLogo.layer.cornerRadius = storeLogo.frame.width / 2
storeLogo.clipsToBounds = true