In effetti, è una scelta di design. Ha bisogno di questo piccolo tempo per differenziare uno scroll (panGesture) da un tocco. Se elimini questo ritardo, l'utente non sarà in grado di scorrere se posiziona il dito sopra il pulsante, che non è una buona esperienza utente.
Poiché una vista di scorrimento non ha barre di scorrimento, deve sapere se un tocco segnala l'intenzione di scorrere rispetto a un intento di tracciare una sottoview nel contenuto. Per effettuare questa determinazione, intercetta temporaneamente un evento di touchdown iniziando un timer e, prima che il timer scatti, vedendo se il dito che tocca fa un movimento. Se il timer scocca senza una modifica significativa della posizione, la vista di scorrimento invia gli eventi di tracciamento alla vista secondaria toccata della vista del contenuto.
dal UIScrollView Documentation
non mi consiglia la disabilitazione il ritardo, ma se insistete, è possibile impostare in Interface Builder (selezionare la Scroll Visualizza e sul pannello di destra, proprio sotto "rimbalzi Zoom "), o usando questo codice:
scrollView.delaysContentTouches = false
Grazie! Risposta perfetta Ci penserò. Mi piacerebbe che ci fosse un modo per sbarazzarsi del ritardo, ma comunque abilitare lo scorrimento. – pixelfreak
@pixelfreak non è impossibile creare una visualizzazione a scorrimento personalizzata che farebbe entrambe le cose, ma gli utenti iOS sono abituati a questo comportamento e sarebbe meglio se non si scherza con i concetti base di interazione utente di iOS. –
È possibile farlo solo per le sottoview specifiche della vista di scorrimento, come richiesto? –