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' UIRefreshControl
en 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);
}