Domanda

Sto facendo un raccoglitore orizzontale usando un UICollectionView.È abbastanza semplice: un UIView con un UICollectionView creato a livello programmatico, utilizzando UICollectionViewFlowLayout con una sezione, a scorrimento impostato su orizzontale.Appare su schermo, completo con i dati corretti nelle celle corrette.Ma non scorre --- infatti non risponde a interazione dell'utente.

Ecco l'Inizializzatore per la vista:

- (id)initWithFrame:(CGRect)frame andItemData:(NSArray *)itemData
{
    self = [super initWithFrame:frame];
    if (self) {
        _itemData = itemData;

        UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
        [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
        [flowLayout setItemSize:CGSizeMake(kCellWidth, kCellHeight)];
        [flowLayout setMinimumInteritemSpacing:0.f];
        [flowLayout setMinimumLineSpacing:0.f];

        _collectionView = [[UICollectionView alloc] initWithFrame:[self frame] collectionViewLayout:flowLayout];
        [_collectionView setDataSource:self];
        [_collectionView setDelegate:self];
        [_collectionView setBounces:NO];
        [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"HorizontalPickerCell"];
        [self addSubview:_collectionView];
    }
    return self;
}
.

Ho provato a pianificare il programmaticamente UserInteractionEnabled a YES, ma ciò non ha fatto alcuna differenza (né non dovrebbe avere, poiché UserInteractionEnabled è impostato su YES per impostazione predefinita).Fwiw, la vista della raccolta utilizza UICollectionViewCells standard con UILabels aggiunto ai loro contentViews come sottoviews.

Qualche pensato sul perché questo non sta scorrendo?Qualsiasi e tutto aiuta molto molto apprezzato.

È stato utile?

Soluzione

OK, questo si è rivelato sia stupido dalla mia parte che facile da risolvere.Ho impostato il telaio della visualizzazione della raccolta sul frameGcode della sua vista genitore anziché il suo bounds.Ciò ha causato tutti i tipi di problemi di AutoLayout e ha portato a tattili eventi semplicemente non registrati.Tutto fissato ora.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top