J'écris une application en utilisant un cadre de connectivité multipeer. Un de mes appareils va préparer une liste d'éléments UIView et les envoyer à l'autre périphérique. Lorsque l'autre appareil reçoit la liste, il la place sur la vue et l'affiche.Swift: Mettre à jour UIView en utilisant la connectivité multipeer
Cependant, j'ai trouvé que l'appareil peut recevoir la liste, et peut imprimer les images de chacun des éléments de la liste. Cependant, il le place sur l'écran avec une boucle for, mais la vue ne sera jamais mise à jour. Une idée de ce que j'ai manqué? ContainerView est déjà affiché lors du lancement de l'application.
func placeViews() {
for (string, item) in self.imageViewItemViews {
debugPrint(string, item.frame) // print out what it received correctly
self.containerView.addSubview(item)
}
}
J'ai également appelé self.containerView.setNeedsDisplay()
Vous pouvez vérifier toutes les sous-vues lorsque l'application est en cours d'exécution à l'aide de la hiérarchie de la vue Débogage (vue 3D). J'ai joint l'image pour la même chose dans ma réponse. –