J'ai suivi le tutorial ici pour créer une vue inspectable et designable. Je veux juste ajouter la couleur de la bordure, la largeur de la bordure et la capacité de la bordure arrondie dans le UIView
.Pourquoi les propriétés marquées @IBInspectable ne fonctionnent pas?
J'ai réussi à montrer les propriétés. Mais peu importe ce que j'ai mis sur le storyboard, le résultat est toujours comme s'ils n'étaient pas là. Il n'y a pas de bordure, même si j'ai défini la bordure comme 2 en largeur et en noir. Ce n'est pas affiché à la fois sur le storyboard et à l'exécution. J'ai mis la frontière à la largeur 2, mais à l'exécution, j'imprime la valeur de largeur de frontière à didViewLoad, et le résultat est 0. Ce qui pourrait être erroné?
@IBDesignable extension view: 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 = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
Et cela ne fonctionne pas non plus:
@IBDesignable class BOView: 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 = borderWidth;
}
}
@IBInspectable var borderColor: UIColor? {
get {
return UIColor(CGColor: layer.borderColor!);
}
set {
layer.borderColor = borderColor?.CGColor
}
}
}
avez-vous tourné le menu '' Editor' ➜ Actualiser automatiquement Views' dans IB? – holex
@holex cette option est déjà activée. –
voir ce tutoriel: https://iosdevcenters.blogspot.com/2017/07/how-to-use-ibinspectable-in-swift-30.html –