Ho la seguente configurazione.Come passare l'evento tattile a superview quando userInteractionEnabled = YES?
+- XXXCustomControl : UIControl -------+
| A |
| +- ContentView -------------------+|
| | ||
| | B ||
| | ||
| +---------------------------------+|
+--------------------------------------+
Un XXXCustomControl che è una sottoclasse di UIControl. Contiene una sottoview chiamata contentView di tipo UIView con dimensioni minori dell'area del Control. Quella vista ha .userInteractionEnabled = YES;
Ho bisogno che la proprietà sia impostata su SÌ, perché le visualizzazioni di scorrimento orizzontali vengono inserite di tanto in tanto e devono essere scorrevoli. Se la superview (nel nostro caso la visualizzazione del contenuto non consentirebbe l'interazione dell'utente, questo è ereditato dalle sottoview.) Ma allo stesso tempo questo XXXCustomControl deve essere intercettabile quando non contiene scrollview nella sua vista del contenuto non solo nell'area A ma anche nella zona B.
quindi ho un "conflitto di interessi" qui perché sia
1) impostare la visualizzazione del contenuto di userInteractionEnabled = NO, allora posso toccare il controllo vuota nell'area di visualizzazione contenuto sia in A e B, ma le schermate di scorrimento che inserirò non saranno scorrevoli ..
2) impostare la visualizzazione del contenuto su userInteractionEnabled = YES, ma poi, se il Controllo è vuoto, Posso solo toccare l'area A per attivare un evento tattile.
Un'idea che ho trovato è che ho impostato la proprietà su NO di default e quando popolo il contentView l'ho impostato su yes. quando cancello il contentView ho impostato di nuovo la proprietà su no. Fondamentalmente voglio che questo sia impostato su yes per tutto il tempo, e quando è vuoto, forzare il contentView a passare l'evento touchUpInside alla sua superview.
È possibile?
Se vi interessa soltanto rubinetto perché non aggiungere un gesturerecognizer alla vista del bambino che è l'azione è lo stesso di Gesturerecognizer nella visualizzazione padre? Sembra l'implementazione più semplice. – Putz1103
Perché non hai assegnato una risposta? Michaels funziona per me ... –
Meglio tardi che mai ... –