Vous trouverez ci-dessous la manière dont mes vues sont organisées dans IB, en haut -> en bas lorsque l'application est lancée.
L'utilisateur peut faire quelque chose pour que "l'en-tête de la vue des catégories" soit temporairement étendu sur la "vue du nom". Toutefois, l'action .TouchDown attribuée à "l'en-tête de la vue des catégories" ne fonctionne plus lorsqu'elle chevauche celle-ci avec c'est-à-dire que l'utilisateur peut appuyer sur l'en-tête n'importe où il ne chevauche pas la vue avec nom et cela fonctionne toujours).
Je sais que cela peut être déroutant, alors j'ai dessiné des cartons. À gauche, l'original, à droite après l'action de l'utilisateur; le problème à droite, l'action sur la zone rouge ne fonctionne que si l'utilisateur appuie sur la moitié inférieure et non sur la moitié supérieure.
J'imagine que c'est parce que l'en-tête est plus bas dans la hiérarchie que le nom, mais il serait difficile pour moi de changer cela sans traiter avec un tas de contraintes.
J'ai également essayé de définir nameView.hidden = true, mais cela ne fonctionne pas.
Si vous souhaitez amener une sous-vue au premier plan, vous pouvez utiliser:
MISE À JOUR Swift 4
self.view.bringSubviewToFront(yourView)
MISE À JOUR Swift 3
self.view.bringSubview(toFront: yourView)
Envoyer la vue à l'arrière: -
MISE À JOUR Swift 4
self.view.sendSubviewToBack(yourView)
MISE À JOUR Swift 3
self.view.sendSubview(toBack: yourView)
Vous pouvez contrôler l’ordre des sous-vues à l’aide des méthodes: bringSubviewToFront et sendSubviewToBack dans la vue supérieure.
Vous pouvez accéder à toutes les sous-vues contenues dans superview à l'aide du tableau self.view.subview.
Dans Swift 4.2
Pour amener une sous-vue au premier plan
self.view.bringSubviewToFront(yourView)
Pour envoyer une sous-vue à l'arrière
self.view.sendSubviewToBack(yourView)
La méthode a été mise à jour depuis Swift 3
Ce qui a fonctionné pour moi et j'espère pour vous, c'est d'utiliser:
YourView.bringSubview(toFront: yourelementA)
YourView.bringSubview(toFront: yourelementB)
Vous pouvez également utiliser ce qui suit pour envoyer l'objet qui se trouve à l'avant:
YourView.sendSubview(toBack: yourelementC)
J'espère que ça aide