Tôi đang cố gắng để thêm một UIRefreshControl
đến một UICollectionView
, nhưng vấn đề là kiểm soát làm mới không xuất hiện trừ khi xem bộ sưu tập đầy lên chiều cao của container cha của nó. Nói cách khác, trừ khi chế độ xem bộ sưu tập đủ dài để yêu cầu cuộn, không thể kéo xuống để hiển thị chế độ xem điều khiển làm mới. Ngay khi bộ sưu tập vượt quá chiều cao của thùng chứa mẹ, nó được kéo xuống và hiển thị chế độ xem làm mới.
Tôi đã thiết lập một dự án iOS nhanh chóng chỉ với một UICollectionView
bên trong khung nhìn chính, với một lối thoát cho chế độ xem bộ sưu tập để tôi có thể thêm UIRefreshControl
nó vào đó viewDidLoad
. Ngoài ra còn có một ô nguyên mẫu với mã định danh tái sử dụngcCell
Đây là tất cả các mã trong bộ điều khiển và nó thể hiện vấn đề khá tốt. Trong mã này, tôi đặt chiều cao của ô là 100, không đủ để lấp đầy màn hình và do đó, chế độ xem không thể kéo và điều khiển làm mới sẽ không hiển thị. Đặt nó vào một cái gì đó cao hơn để lấp đầy màn hình, sau đó nó hoạt động. Có ý kiến gì không?
@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