J'essaie d'ajouter un UIRefreshControl
à un UICollectionView
, mais le problème est que le contrôle d'actualisation n'apparaît que si la vue de collection remplit la hauteur de son conteneur parent. En d'autres termes, à moins que la vue de collection ne soit suffisamment longue pour nécessiter un défilement, elle ne peut pas être tirée vers le bas pour révéler la vue de contrôle d'actualisation. Dès que la collection dépasse la hauteur de son conteneur parent, elle est tirée vers le bas et révèle la vue d'actualisation.
Je l' ai mis en place un projet iOS rapide avec juste UICollectionView
dans la vue principale, avec une sortie à la vue de la collecte afin que je puisse ajouter UIRefreshControl
à dans viewDidLoad
. Il existe également une cellule prototype avec l'identifiant de réutilisationcCell
C'est tout le code du contrôleur et cela illustre assez bien le problème. Dans ce code, j'ai défini la hauteur de la cellule sur 100, ce qui n'est pas suffisant pour remplir l'affichage.Par conséquent, la vue ne peut pas être extraite et le contrôle d'actualisation ne s'affiche pas. Réglez-le sur quelque chose de plus haut pour remplir l'écran, puis cela fonctionne. 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);
}
alwaysBounceVertical