如何在 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 单元格上添加过渡动画?

如何在 swift 3 中的 tableview 单元格中添加带有自定义视图的 collectionView?

如何在collectionView自定义布局中的其他补充标题单元格上方添加标题补充单元格