Pergunta

Estou fazendo um seletor horizontal usando um UICollectionView.É bastante simples:A UIView com um UICollectionView criado programaticamente, usando UICollectionViewFlowLayout com uma seção, rolagem definida como horizontal.Ele aparece na tela, completo com os dados corretos nas células corretas.Mas ele não rola – na verdade, ele não responde à interação do usuário.

Aqui está o inicializador da visualização:

- (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;
}

Eu tentei configurar programaticamente UserInteractionEnabled para YES, mas isso não fez nenhuma diferença (nem deveria, já que UserInteractionEnabled está configurado para YES por padrão).FWIW, a visualização da coleção usa padrão UICollectionViewCellestá com UILabelé adicionado ao seu contentViews como subvisualizações.

Alguma idéia de por que isso não está rolando?Toda e qualquer ajuda é muito apreciada.

Foi útil?

Solução

Ok, isso acabou sendo idiota da minha parte e fácil de consertar.Defino o quadro da visualização da coleção como a visualização pai frame em vez de seu bounds.Isso causou todos os tipos de problemas de layout automático e fez com que os eventos de toque simplesmente não fossem registrados.Tudo consertado agora.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top