Estoy tratando de agregar a UIRefreshControl
a UICollectionView
, pero el problema es que el control de actualización no aparece a menos que la vista de recopilación llene la altura de su contenedor principal. En otras palabras, a menos que la vista de colección sea lo suficientemente larga como para requerir desplazamiento, no se puede desplegar para revelar la vista de control de actualización. Tan pronto como la colección excede la altura de su contenedor principal, se despliega y revela la vista de actualización.
He creado un proyecto IOS rápida con sólo una UICollectionView
dentro de la vista principal, con una salida a la vista de colección para que pueda añadir el UIRefreshControl
a ella en viewDidLoad
. También hay una celda prototipo con el identificador de reutilizacióncCell
Este es todo el código en el controlador, y demuestra el problema bastante bien. En este código, establezco la altura de la celda en 100, que no es suficiente para llenar la pantalla y, por lo tanto, la vista no se puede extraer y el control de actualización no se mostrará. Ajústelo a algo más alto para llenar la pantalla, luego funciona. ¿Algunas ideas?
@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