问题描述
我使用SnapKit布局imageView并通过Kingfisher从URL加载图像,我也想通过Kingfisher设置拐角半径(使用RoundCornerImageProcessor
),如果我设置了targetSize,图片会变形,如果未设置,则只是拐角半径,我无法获得想要的结果。
我该怎么办?
解决方法
您可以像这样为kingFisher轻松设置图像:
import UIKit
import Kingfisher
class ViewController: UIViewController {
@IBOutlet weak var image:UIImageView!
let rawstring = "https://apis.baytelhekma.com/zinzo/public/storage/products/November2020/eUWwRjNCYCdHUjGIQiJk.png"
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: rawstring)
image.kf.setImage(with: url)
}
}
然后您可以通过将角半径添加到项目中来创建角半径:
import Foundation
import UIKit
extension UIView {
@IBInspectable
var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable
var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable
var borderColor: UIColor? {
get {
let color = UIColor(cgColor: layer.borderColor!)
return color
}
set {
layer.borderColor = newValue?.cgColor
}
}
}
之后,您所需要做的就是在您的ViewController
中进行以下操作:
image.cornerRadius = 15 // you can set it with the number fits your app