Я пытаюсь добавить UIRefreshControl
к a 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);
}
alwaysBounceVertical