UICollectionView不滚动

我有一个UICollectionView设置与UICollectionViewDataSource ,目前提供六个项目。 这些比填写屏幕所需要的要less。 问题是我的collections视图只在有足够的项目填满屏幕时滚动(用10,20testing)。 当显示更less的项目,它甚至不会做这个反弹animation,我试图得到,它只是固定的。

 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateCollectionViewData) name:UIDocumentStateChangedNotification object:nil]; UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init]; flowLayout.itemSize = CGSizeMake(160, 100); flowLayout.minimumInteritemSpacing = 0; flowLayout.minimumLineSpacing = 0; self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout]; [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"]; self.collectionView.delegate = self; self.collectionView.dataSource = self; self.collectionView.bounces = YES; [self.view addSubview:self.collectionView]; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return [self.collectionViewData count]; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"Cell" forIndexPath:indexPath]; Expense *expense = [self.collectionViewData objectAtIndex:indexPath.row]; UILabel *label = [[UILabel alloc]initWithFrame:cell.bounds]; label.text = expense.value; label.backgroundColor = [UIColor clearColor]; label.font = [UIFont fontWithName:@"Miso-Bold" size:30]; label.textAlignment = NSTextAlignmentCenter; [cell addSubview:label]; cell.backgroundColor = [UIColor colorWithRed:1 - (indexPath.row / 30.0f) green:0 blue:1 alpha:1]; return cell; } 

谢谢你的帮助!

bounces ,尽pipe它的名字,是不是正确的财产设置。 您还需要设置alwaysBounceVertical和/或alwaysBounceHorizontal 。 从文档:

如果此属性设置为YES且弹跳为YES,则即使内容小于滚动视图的边界,也可以进行垂直拖动。 默认值是NO。


请注意IB中令人困惑的名称.. https://stackoverflow.com/a/18391029/294884

在属性检查器中为故事板收集视图“反弹”和“垂直反弹”应该被检查。

UICollectionView的高度设置为UIView大小将使您的滚动问题被禁用。 如果UICollectionView是568像素,那么只要它的内容超过568像素,它就只需要滚动。 您应该将其设置为包含的视图的高度(与宽度相同)。

希望它可以帮助你。