如何在 collectionview 中添加 PageviewController
Posted
技术标签:
【中文标题】如何在 collectionview 中添加 PageviewController【英文标题】:How to add PageviewController inside collectionview 【发布时间】:2015-08-25 09:28:13 【问题描述】:我在UIViewController
中有一个UICollectionView
。现在,我需要在我创建的自定义UICollectionViewCell
中添加一个UIPageViewController
。我该怎么做?
这是我的方法。
UIVIewController.h
类
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
PViewCollectionViewCell *cell=[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
[cell.pageViewController addTarget:self action:@selector(changed:) forControlEvents:UIControlEventTouchUpInside];
return cell;
PViewCollectionViewCell.h
类
#import <UIKit/UIKit.h>
@interface PViewCollectionViewCell : UICollectionViewCell <UIPageViewControllerDataSource>
@property (strong, nonatomic) IBOutlet UIImageView *pageBannerImageView;
@property (strong, nonatomic) IBOutlet UIPageControl *pageViewController;
- (IBAction)pageVIewChanged:(id)sender;
@end
【问题讨论】:
你想要哪个,UIPageViewController 或 UIPageControl - 它们是非常不同的东西。 我在找UIPageViewController
【参考方案1】:
您在问“如何实现UIPageViewController”并使用UIPageControl 给出代码示例。这是完全不同的事情。我永远不会推荐在 UICollectionViewCell 上实现 UIPageViewController,因为它可能会影响你的性能。最好的方法是 UIScrollView + UIPageControl。
在你的 UICollectionViewCell 上添加 UIScrollViewDelegate:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
CGFloat pageWidth = scrollView.frame.size.width;
int page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;
另外,使用以下方法在滚动条上启用分页:
self.scrollView.pagingEnabled = YES;
Here你可以找到很多描述得很好的答案。我想说的是,你在哪里实现分页并不重要——在 UIView 或 UICollectionViewCell 上。您唯一应该做的就是确保 UICollectionView 滚动手势不会取消您的 UICollectionView 分页滚动手势。
请不要重复问题。首先查看现有帖子,只有在没有找到任何内容时才创建自己的帖子。
【讨论】:
以上是关于如何在 collectionview 中添加 PageviewController的主要内容,如果未能解决你的问题,请参考以下文章
如何在 CollectionView 中添加业务逻辑? [关闭]
如何在 CollectionView 中添加 SearchBar? [关闭]
如何通过 indexPath 在水平 collectionView 中动态添加视图/图层
如何在 CollectionView 单元格上添加过渡动画?