ios开发-引导页实现

源码:https://files.cnblogs.com/ios8/%5Bcode4app.com%5DIntroductionTutorialView_10843.zip

可以看看demo,很简单,我也是一看就懂。

下面说说我整合到我的项目中的方法。

 

1.把下载的demo中的

MYIntroductionView.h    

MYIntroductionView.m

MYIntroductionPanel.h

MYIntroductionPanel.m

这四个文件,再加上一些图像资源加到你的工程中去。(之后如果要修改图像等资源只要在相应位置修改就好了。这里只是师范,没做修改)。

 

2.在你的主界面(打开应用显示的第一个界面)

在对应的.h文件中引入头文件并且设置协议。

如我的是  mainView.h

 
  1. //  
  2. //  mainView.h  
  3. //  softwareApp  
  4. //  
  5. //  Created by 余龙泽 on 13-9-27.  
  6. //  Copyright (c) 2013年 余龙泽. All rights reserved.  
  7. //  
  8.   
  9. #import <UIKit/UIKit.h>  
  10. #import "MYIntroductionView.h"  
  11.   
  12. @interface mainView : UITabBarController<MYIntroductionDelegate>  
  13.   
  14. @end  



 

3.在主界面对应的.m文件中加入如下代码。

如我的mainView.m

 
  1. -(void)viewDidAppear:(BOOL)animated{  
  2.       
  3.     //读取沙盒数据  
  4.     NSUserDefaults * settings1 = [NSUserDefaults standardUserDefaults];  
  5.     NSString *key1 = [NSString stringWithFormat:@"is_first"];  
  6.     NSString *value = [settings1 objectForKey:key1];  
  7.     if (!value)  //如果没有数据  
  8.     {  
  9.         //STEP 1 Construct Panels  
  10.         MYIntroductionPanel *panel = [[MYIntroductionPanel alloc] initWithimage:[UIImage imageNamed:@"SampleImage1"] description:@"Welcome to MYIntroductionView, your 100 percent customizable interface for introductions and tutorials! Simply add a few classes to your project, and you are ready to go!"];  
  11.           
  12.         //You may also add in a title for each panel  
  13.         MYIntroductionPanel *panel2 = [[MYIntroductionPanel alloc] initWithimage:[UIImage imageNamed:@"SampleImage2"] title:@"Your Ticket!" description:@"MYIntroductionView is your ticket to a great tutorial or introduction!"];  
  14.           
  15.         //STEP 2 Create IntroductionView  
  16.           
  17.         /*A standard version*/  
  18.         //MYIntroductionView *introductionView = [[MYIntroductionView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) headerImage:[UIImage imageNamed:@"SampleHeaderImage.png"] panels:@[panel, panel2]];  
  19.           
  20.           
  21.         /*A version with no header (ala "Path")*/  
  22.         //MYIntroductionView *introductionView = [[MYIntroductionView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) panels:@[panel, panel2]];  
  23.           
  24.         /*A more customized version*/  
  25.         MYIntroductionView *introductionView = [[MYIntroductionView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height) headerText:@"MYIntroductionView" panels:@[panel, panel2] languageDirection:MYLanguageDirectionLeftToRight];  
  26.         [introductionView setBackgroundImage:[UIImage imageNamed:@"SampleBackground"]];  
  27.           
  28.           
  29.         //Set delegate to self for callbacks (optional)  
  30.         introductionView.delegate = self;  
  31.           
  32.         //STEP 3: Show introduction view  
  33.         [introductionView showInView:self.view];  
  34.           
  35.         //写入数据  
  36.         NSUserDefaults * setting = [NSUserDefaults standardUserDefaults];  
  37.         NSString * key = [NSString stringWithFormat:@"is_first"];  
  38.         [setting setObject:[NSString stringWithFormat:@"false"] forKey:key];  
  39.         [setting synchronize];  
  40.     }  
  41. }  



 

代码不难。

viewDidAppear是在视图即将显示时候调用的方法。 这里看头寻找沙盒中 is_first中是否有数据,如果没有,就说明是第一次运行程序,则显示引导页并且在沙盒对应位置写入数据。

如果有数据,就说明不是第一次运行,则跳过,不显示引导页。  

 

很简单的操作。当然有更好的方法,也有更好的类库,这只是我个人选择的方法罢了。

posted @ 2013-11-13 08:20  苹果吧  阅读(15350)  评论(1编辑  收藏  举报