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。
  • 导入 <JCNewFeatureNormalVC.h> 或者 <JCNewFeaturePagingVC.h>

如何使用#

在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 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,241评论 4 61
  • 文/山河九鼎 -1- 这几天计划着去东北。 猛然想起,这刚刚过去的上半年,我去了2个国家15个城市。 2月伊始,到...
    山河九鼎阅读 688评论 11 19
  • 文/友不旧 -1- 曾经在知乎上看到有人提问: 跟很穷的男生谈恋爱是一种什么样的体验? 看到题目的时候,觉得提问者...
    友不旧阅读 885评论 9 22
  • 我喜欢 我喜欢 摇晃蜂蜜水后的那种旋转 旋转的模样那么美丽 美丽的让我发愣发呆深爱 深深陷入了这自由自在 就这样 ...
    一枚冰儿阅读 160评论 0 0