Я пытаюсь добавить UIRefreshControl
в UICollectionView
, но проблема в том, что элемент управления обновлением не появляется, если только представление коллекции не заполняет высоту его родительского контейнера. Другими словами, если просмотр коллекции достаточно длинный, чтобы требовать прокрутки, его нельзя снять, чтобы открыть представление управления обновлением. Как только коллекция превышает высоту своего родительского контейнера, она сбрасывается и отображает представление обновления.
Я установил быстрый проект iOS с помощью всего лишь UICollectionView
внутри основного представления, с выходом в представление коллекции, чтобы я мог добавить UIRefreshControl
к нему в viewDidLoad
. Существует также прототип ячейки с идентификатором повторного использования cCell
Это весь код в контроллере, и он демонстрирует проблему довольно хорошо. В этом коде я устанавливаю высоту ячейки в 100, чего недостаточно, чтобы заполнить дисплей, и поэтому представление не может быть вытащено, и элемент управления обновлением не будет отображаться. Установите его на что-то большее, чтобы заполнить дисплей, затем он работает. Любые идеи?
@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);
}