Junior — Middle
Is het mogelijk om gebruikersgebeurtenissen in de interface te verwerken wanneer de eigenschap userInteractionEnabled op false is ingesteld?
sobes.tech AI
Antwoord van AI
Als een UIView of een subclass ervan de eigenschap userInteractionEnabled op false heeft staan, ontvangt dat element en al zijn kindelementen geen interactiegebeurtenissen (taps, gebaren, enz.).
Als je echter gebeurtenissen wilt verwerken ondanks userInteractionEnabled = false, kun je:
- De gebeurtenisverwerkingsmethoden overschrijven in de oudercontroller of een andere controller.
- Gebaren (UITapGestureRecognizer en anderen) gebruiken die aan de ouderview zijn toegevoegd, die
userInteractionEnabled = trueheeft. - Een doorzichtige laag erboven maken die de gebeurtenissen opvangt.
Direct op het element met userInteractionEnabled = false is het verwerken van gebeurtenissen niet mogelijk, omdat het systeem de gebeurtenissen niet doorgeeft.