Estou tentando adicionar um UIRefreshControl
a um UICollectionView
, mas o problema é que o controle de atualização não aparece, a menos que o modo de exibição de coleção preencha a altura do seu contêiner pai. Em outras palavras, a menos que a visualização da coleção seja longa o suficiente para exigir rolagem, ela não poderá ser puxada para baixo para revelar a visualização do controle de atualização. Assim que a coleção exceder a altura do contêiner pai, ela é puxada para baixo e revela a exibição de atualização.
Eu configurei um projeto iOS rápido, com apenas uma parte UICollectionView
interna da visualização principal, com uma saída para a visualização de coleção, para que eu possa adicioná UIRefreshControl
-la viewDidLoad
. Há também uma célula protótipo com o identificador de reutilizaçãocCell
Esse é todo o código no controlador e demonstra muito bem o problema. Nesse código, defino a altura da célula como 100, o que não é suficiente para preencher a exibição e, portanto, a visualização não pode ser puxada e o controle de atualização não será exibido. Defina-o como algo mais alto para preencher a tela e funcionará. Alguma ideia?
@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