148 votes

UIRefreshControl sur UICollectionView ne fonctionne que si la collection remplit la hauteur du conteneur

J'essaye d'ajouter un UIRefreshControl d'un UICollectionView, mais le problème est que l'actualisation de contrôle n'apparaissent pas, sauf si l'affichage de la collection remplit la hauteur de son conteneur parent. En d'autres termes, à moins que l'affichage de la collection est assez longue pour exiger de défilement, il ne peut être tiré vers le bas pour révéler l'actualisation de contrôle de la vue. Dès que la collecte dépasse la hauteur de son conteneur parent, il est tiré vers le bas et révèle l'actualiser l'affichage.

J'ai mis en place un rapide iOS projet avec juste un UICollectionView à l'intérieur de la vue principale, avec une prise de courant à la vue de collection, de sorte que je peux ajouter de l' UIRefreshControlen viewDidLoad. Il y a aussi un prototype de cellule avec la réutilisation de l'identificateur cCell

C'est tout le code dans le contrôleur, et il témoigne de la question assez bien. Dans ce code, je l'ai réglé la hauteur de la cellule à 100, ce qui n'est pas assez pour remplir l'écran, et donc le point de vue ne peut pas être tiré et l'actualisation de contrôle de ne pas s'afficher. Jeu il de quelque chose de plus pour remplir l'écran, puis il travaille. Des idées?

@interface ViewController () <UICollectionViewDelegateFlowLayout, UICollectionViewDataSource>
@property (strong, nonatomic) IBOutlet UICollectionView *collectionView;
@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
    [self.collectionView addSubview:refreshControl];
}

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return 1;
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    return [collectionView dequeueReusableCellWithReuseIdentifier:@"cCell" forIndexPath:indexPath];
}

-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    return CGSizeMake(self.view.frame.size.width, 100);
}

406voto

Larry Points 1186

Essayez ceci :

``

Remplir le code pour une``

31voto

nucleus Points 372

Attributs/défiler vue/Bounce verticalement dans la table de montage séquentiel/Xib

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X