J'ai écrit une classe de vue personnalisée nommée MyCustomView.swift avec MyCustomView.xib. Lorsque j'utiliseAffichage personnalisé ne s'affiche pas en ajoutant UIView dans le storyboard pour hériter de la classe personnalisée
let customView = MyCustomView(frame:.....)
self.view.addSubView(customView)
La vue personnalisée apparaît. Mais quand j'ajoute directement un UIView dans Storyboard, et que je choisis MyCustomView comme classe de Custom Class, il n'apparaît pas. Même si je définis la couleur de fond de l'UIView, cela ne fonctionne pas. Surtout quand j'annoter le MyCustomview avec @IBDesignable, deux showes d'avertissement d'erreur,
Failed to render and update auto layout status fo XXXViewController
Failed to update auto layout status
que ça veut dire que je devrais mettre la mise en page automatique pour l'affichage personnalisé en story-board?
C'est MyCustomView.class
import UIKit
@IBDesignable
class MyCustomView:UIView{
@IBOutlet weak var categoryLabel: UILabel!
var category:String = ""{
didSet{
self.categoryLabel.text = category
}
}
var intro:String = ""
var address:String = ""
var distance:CGFloat = 0.0
override init(frame: CGRect) {
super.init(frame: frame)
awakeFromNib()
print("\(#function)")
}
convenience init(){
print("\(#function)")
self.init(frame:CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
print("\(#function)")
super.init(coder: aDecoder)
awakeFromNib()
}
override func awakeFromNib() {
super.awakeFromNib()
let view = Bundle.main.loadNibNamed("MyCustomView", owner: self, options: nil)?.first as! UIView
view.autoresizingMask = UIViewAutoresizing.flexibleWidth.union(.flexibleHeight)
addSubview(view)
}
override func layoutSubviews() {
super.layoutSubviews()
}
}
Veuillez ajouter du code pour votre classe 'MyCustomView'. comment vous ajoutez le fichier xib? – xmhafiz
@hafiz Ceci est mon code MyCustomView.class –
@Leo J'ai essayé ..... –