iOS新特性页面(普通和翻页效果)

本人对此封装了一个小框架.大家有需要可以直接拿来用.

快速集成普通的新特性页面##

利用collectionView实现,每一个页面就是一个cell。利用了cell重用机制性能会比scrollView更好。

快速集成翻页效果的新特性页面##

UIPageViewController来实现,具体效果可看下图

先简单介绍一下UIPageViewController##

1.首先创建UIPageViewController

self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];

2.指定数据代理

self.pageViewController.dataSource = self.modelController;

3.必须实现的两个数据源方法

// 往前翻页
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
// 往后翻页
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController

安装#

CocoaPods

  • 在 Podfile 中添加 pod "JCNewFeatureVC"。
  • 执行 pod install 或 pod update。
  • 导入 或者

如何使用#

在AppDelegate中的- (BOOL)application:didFinishLaunchingWithOptions:方法中

BOOL needShow = [JCNewFeatureNormalVC needShowNewFeature];// 根据程序是否第一次运行来显示新特性页面
if(needShow){
    // 先创建好需要展示的新特性图片
    UIImage *image1 = [UIImage imageNamed:@"image1"];
    UIImage *image2 = [UIImage imageNamed:@"image2"];
  下面的代码放在这里
}
普通效果初始化方法1

传入需要展示的图片,最后一页用controller来管理

UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        ViewController *vc = [sb instantiateInitialViewController];
        JCNewFeatureNormalVC *newContr =[JCNewFeatureNormalVC newFeatureWithImages:@[image1,image2] andLastVC:vc];
        self.window.rootViewController = newContr;
  • 初始化控制器放入新特性页面的图片
  • 因为通常在新特性最后一张图片会有点击按钮,所以最后一个页面传入一个控制器进行点击等事件处理
普通效果初始化方法2

只需传入需要展示的图片

JCNewFeatureNormalVC *newContr =[JCNewFeatureNormalVC newFeatureWithImages:@[page1,page2,page3] enterBlock:^{
            NSLog(@"enter");
            [self enterHomeVC];
        }];
        self.window.rootViewController = newContr;
  • 点击最后一张图片的block回调
普通效果初始化方法3

传入每一页对应的控制器

UIViewController *oneVC = [[UIViewController alloc] init];
        oneVC.view.backgroundColor = [UIColor orangeColor];
        
        UIViewController *twoVC = [[UIViewController alloc] init];
        twoVC.view.backgroundColor = [UIColor blueColor];
        
        UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
        ViewController *threeVC = [sb instantiateInitialViewController];
        
        window.rootViewController = [JCNewFeatureNormalVC newFeatureWithControllers:@[oneVC,twoVC,threeVC]];
  • 每一个页面都是由一个控制器管理,高度自定义每一个页面

如果想换成gif中的翻页效果,只需要把上面方法中的JCNewFeatureNormalVC 换成 JCNewFeaturePagingVC

代码在这里

你可能感兴趣的:(iOS新特性页面(普通和翻页效果))