J'ai créé une nouvelle classe héritante uIView. Lorsque je crée une instance de la nouvelle classe, la vue ne semble pas être créée. C'est ma classe.
class mainView : UIViewController { override func viewDidLoad() { super.viewDidLoad() var questionView = QuestionView(frame: CGRect(x: 0, y: self.view.frame.height/2, width: self.view.frame.width, height: 400)) self.view.addSubView(questionView) } }
3 Réponses :
Ajouter SUBVIEW (QuestreView) dans Mainview CODE> Classe dans
ViewDiDload CODE> METHODE.
questionView.backgroundColor = UIColor.red
@ReshMasuresh, avez-vous des xib code> associé à la questionview?
Non, je n'utilise pas.
@Reshmasuresh, j'ai essayé votre code et ça marche. Avez-vous un autre point de vue intégré dans Mainview code>?
Vous devez ajouter toutes les vues créées par programmatisme dans ViewDidLayouTouSubview code> comme ci-dessous
override func viewDidLayoutSubviews() {
var questionView = QuestionView(frame: CGRect(x: 0, y: self.view.frame.height/2, width: self.view.frame.width, height: 400))
self.view.addSubView(questionView)
}
Essayez le code suivant pour obtenir la vue à l'avant, utilisez BringsbueViefront code> fonction.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let questionView = QuestionView(frame: CGRect(x: 0, y: self.view.frame.height/2, width: self.view.frame.width, height: 400))
self.view.addSubview(questionView)
self.view.bringSubviewToFront(questionView)
}
Voulez-vous dire que la vue n'est pas visible à l'écran? Vous devez d'abord ajouter la hiérarchie de vue.
Oui, la vue n'est pas visible. @pckill
Utilisez-vous XIB? vous devez le charger en premier
Non @shruti je ne suis pas.
Pouvez-vous vérifier si votre vue est au premier plan ou que cela se cache derrière toute autre sous-vision. Vous pouvez utiliser le débogueur pour vérifier la hiérarchie de vue
Pouvez-vous montrer le bon de votre vue après son initialisation