2017-09-09 3 views
0


J'ai un problème avec deux de mes boutons dans mon projet Xcode. Après avoir ajouté deux vues au-dessus d'elles pour créer une bordure autour d'elles, elles ne peuvent plus être cliquées. Après les avoir retirés à nouveau, les boutons fonctionnent mais l'ajout du dos les empêche de fonctionner.Les boutons ne sont pas cliquables swift

Voici ma hiérarchie de la vue dans mon projet:

Avant:

-mainView 
-scrollView 
    -contentView 
    -stackView 
    -stackView 
    -stackView 
     -stackView 
     -Button1 
     -Button2 

Après:

-mainView 
-scrollView 
    -contentView 
    -stackView 
    -stackView 
    -stackView 
     -stackView 
     -uiView (new View) 
     -uiView (new View) 
     -Button1 
     -uiView (new View) 
     -uiView (new View) 
     -Button2 

Est-ce parce qu'il ya trop de points de vue?

Merci beaucoup, si vous avez besoin de plus d'informations, écrivez un commentaire et j'essaierai de vous aider lors du prochain montage.

+0

Etes-vous sûr qu'il n'y a pas une vue sur le dessus du bouton? – Shades

+0

@Shades Non, les deux sont à l'intérieur des vues comme je l'ai montré ci-dessus. –

+0

Vérifiez que l'interaction de l'utilisateur est * activée * pour ces vues – Shades

Répondre

0

D'accord, j'ai la solution maintenant ... Il a travaillé après avoir réglé le Alignment et Distribution du StackView à Fill

1

Sous-classe UIView en tant que PassthroughView et de définir la classe de vos vues nouvellement ajoutées à PassthroughView. Ajouter ce code:

class PassthroughView: UIView { 
    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { 
    return subviews.contains(where: { !$0.isHidden && $0.point(inside: point, with: event) 
    }) 
    } 
} 
+0

Qu'est-ce que cela fait? –

+0

Il passe le contact à travers le sommaire de chaque bouton. –

+0

@LennartP. Cette solution a-t-elle fonctionné pour vous? –