本人对此封装了一个小框架.大家有需要可以直接拿来用.
快速集成普通的新特性页面##
利用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
代码在这里
网友评论