Saya mencoba menambahkan a UIRefreshControl
ke UICollectionView
, tetapi masalahnya adalah bahwa kontrol penyegaran tidak muncul kecuali tampilan koleksi mengisi ketinggian wadah induknya. Dengan kata lain, kecuali tampilan koleksi cukup panjang untuk memerlukan pengguliran, itu tidak dapat ditarik ke bawah untuk mengungkapkan tampilan kontrol penyegaran. Segera setelah koleksi melebihi ketinggian wadah induknya, itu ditarik ke bawah dan mengungkapkan tampilan penyegaran.
Saya telah menyiapkan sebuah proyek iOS cepat dengan hanya UICollectionView
dalam tampilan utama, dengan outlet ke tampilan koleksi sehingga saya dapat menambahkan UIRefreshControl
untuk itu dalam viewDidLoad
. Ada juga sel prototipe dengan reuse identifiercCell
Ini semua kode di controller, dan itu menunjukkan masalah dengan cukup baik. Dalam kode ini saya mengatur ketinggian sel ke 100, yang tidak cukup untuk mengisi tampilan, dan oleh karena itu tampilan tidak dapat ditarik dan kontrol penyegaran tidak akan ditampilkan. Atur ke sesuatu yang lebih tinggi untuk mengisi tampilan, lalu berfungsi. Ada ide?
@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