como criar UIImage designável no Swift
Eu sou um iniciante. Quero criar um arquivo rápido que contenha um código para criar Designable UIImage, portanto, não editarei a exibição do elemento da interface do usuário por codificação, apenas no construtor de interface, atribuindo esse arquivo rápido à classe da interface do usuário.
Eu posso fazer algo semelhante no UIButton, por exemplo, se eu quiser fazer um canto arredondado e adicionar borda ao UIButton, eu posso fazer algo assim
import UIKit
@IBDesignable
class DesignableButton: UIButton {
@IBInspectable var cornerRadiusOfButton : CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadiusOfButton
}
}
@IBInspectable var borderWidth: CGFloat {
set {
layer.borderWidth = newValue
}
get {
return layer.borderWidth
}
}
@IBInspectable var borderColor: UIColor? {
set {
guard let uiColor = newValue else { return }
layer.borderColor = uiColor.cgColor
}
get {
guard let color = layer.borderColor else { return nil }
return UIColor(cgColor: color)
}
}
}
para UIImage, geralmente queremos adicionar canto arredondado ou criar UIImage circular usando esse código
// round corner
someImage.layer.cornerRadius = checkinPhoto.bounds.width/20
someImage.clipsToBounds = true
// circular image
someImage.layer.cornerRadius = someImage.frame.size.width / 2
someImage.clipsToBounds = true
como transformar esses códigos na classe de código @IBDesignable da UIImage, como o UIButton Designável acima? Tentei fazer uma subclasse de UIImage, mas não sei por que não consigo acessarlayer
eclipToBounds