扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学PHP伐。
那你需要一个scrollView 把collectionView添加到scrollView上,然后(我是代码,在scrollView addsubview collectionView后)把collectionView的contentSize.height赋给scrollView的contentSize和collectionView的高度.这样你再设置collectionView不可滑动。就OK了。
如果你的 cell 够多,超出屏幕高度了怎么办?
其实直接设置高度为全屏高就好了
[collectionView.collectionViewLayout collectionViewContentSize].height
即为所有内容的高度。
把collectionView高度更新一下就好了。
如果你想实现“不需要拖动就可以显示UICollectionView的全部内容”,前提是你为UICollectionView分配的layout必须要容得下所有的UICollectionViewCell.如果满足这个前提,比如你想显示的UICollectionView包含9个cell,每个cell大小相同,就像一个九宫格。你必须设置每个cell的frame size:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
Asks the delegate for the size of the specified item’s cell.Your implementation of this method can return a fixed set of sizes or dynamically adjust the sizes based on the cell’s content.
代码片段:
#define kCollectionViewRows 3 #define kCollectionViewCols 3 @property (weak, nonatomic) IBOutlet UICollectionView *myCollectionView; # pragma mark - Collection View Data Source Methods // 1个section - (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } // 9个cell - (NSInteger) collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { if (collectionView == self.myCollectionView) { return kCollectionViewRows * kCollectionViewCols; } } // 设置指定位置cell的frame size - (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { if (collectionView == self.myCollectionView) { CGRect collectionViewFrame = self.myCollectionView.frame; CGFloat cellWidth = collectionViewFrame.size.width/kCollectionViewCols; CGFloat cellHeight = collectionViewFrame.size.height/kCollectionViewRows; return CGSizeMake(cellWidth, cellHeight); } } // 返回指定位置的cell - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { UICollectionViewCell *cell = nil; if (collectionView == self.myCollectionView) { cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCollectionViewCell" forIndexPath:indexPath]; // configure your cell } return cell; }
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
那你需要一个scrollView 把collectionView添加到scrollView上,然后(我是代码,在scrollView addsubview collectionView后)把collectionView的contentSize.height赋给scrollView的contentSize和collectionView的高度.这样你再设置collectionView不可滑动。就OK了。
如果你的 cell 够多,超出屏幕高度了怎么办?
其实直接设置高度为全屏高就好了
即为所有内容的高度。
把collectionView高度更新一下就好了。
如果你想实现“不需要拖动就可以显示UICollectionView的全部内容”,前提是你为UICollectionView分配的layout必须要容得下所有的UICollectionViewCell.
如果满足这个前提,比如你想显示的UICollectionView包含9个cell,每个cell大小相同,就像一个九宫格。
你必须设置每个cell的frame size:
代码片段: