本人對此封裝了一個小框架.大家有需要可以直接拿來用.
快速集成普通的新特性頁面##
利用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
代碼在這里