2013-02-07 10 views
5

Ho un UICollectionView con un UICollectionViewCell personalizzato. Lo UICollectionView scorre in orizzontale, con ogni cella che occupa tutto lo schermo visibile.UIScrollView all'interno di UICollectionViewCell non funziona

Il UICollectionViewCell ha una sottoview UIView, che a sua volta ha una sottoview UIScrollView.

Lo UIScrollView è progettato per scorrere verticalmente, ma non sta scorrendo affatto. Ho provato a impostare la vista di scorrimento contentSize senza successo.

Ho il sospetto che lo UIScrollView non abbia ricevuto alcun evento di tocco piuttosto che un problema di dimensioni.

Qualche suggerimento?

EDIT >>

ora sono sicuro che sia un problema di evento, piuttosto che qualcosa di specifico al UIScrollView.

Ora ho sostituito il metodo pointInside: nello UIView nello UICollectionViewCell e posso vedere che ora restituisce false ogni volta che lo tocco. In tal caso penseresti che l'evento tap si propagherebbe alla sottoview successiva, ma lo UIView non sta ancora ricevendo eventi. Ho provato ad aggiungere un UIGestureRecognizer allo UIView ma non registra mai un tocco.

Potrebbe esserci qualcosa qui che intercetta gli eventi di cui non sono a conoscenza?

risposta

0

provare a disattivare userInteractionEnabled per la UIView e abilitarla per il vostro UIScrollView

+0

Grazie, ma questo non risolve il problema. Inoltre, occasionalmente caricare UIView/UIScrollView all'esterno di CollectionView. Quando disattivo userInteractionEnabled su UIView e lo abilito su UIScrollView, non riesco nemmeno a scorrere. –

1

Ho cercato di risolvere un problema simile con uno ScrollView, e la modifica di eventi mi ha ricordato di questa domanda (che ha risolto il mio problema di nuovo) How can I use a UIButton in a UICollection supplementary view?

È possibile che sia necessario utilizzare UICollectionReusableView, non UICollectionViewCell. Cambiare la classe ha funzionato per me perché stavo usando un pulsante (e di recente una scrollview) in un'intestazione.

Tuttavia non ho provato per le celle stesse. Per catturare eventi da un UICollectionViewCell, forse il seguente potrebbe aiutare? Getting button action : UICollectionView Cell

0

Non sono sicuro che questo fosse il tuo problema, ma era mio - e lo sto mettendo qui nel caso in cui qualcun altro lo capiti per lo stesso motivo. Volevo inserire uno UIScrollView all'interno di uno UICollectionReusableView ma, per errore, avevo creato la mia classe personalizzata come;

class CustomCellHeader: UICollectionViewCell { 


} 

anziché;

class CustomCellHeader: UICollectionReusableView { 


} 

Una volta che ho cambiato, il UIScrollView nel mio cella di intestazione è venuto a vita!

Problemi correlati