源码:http://files.cnblogs.com/ios8/%5Bcode4app.com%5DIntroductionTutorialView_10843.zip
可以看看demo,很简单,我也是一看就懂。
下面说说我整合到我的项目中的方法。
1.把下载的demo中的
MYIntroductionView.h
MYIntroductionView.m
MYIntroductionPanel.h
MYIntroductionPanel.m
这四个文件,再加上一些图像资源加到你的工程中去。(之后如果要修改图像等资源只要在相应位置修改就好了。这里只是师范,没做修改)。
2.在你的主界面(打开应用显示的第一个界面)
在对应的.h文件中引入头文件并且设置协议。
如我的是 mainView.h
class="dp-cpp" start="1">
-
-
-
-
-
-
-
-
- #import <UIKit/UIKit.h>
- #import "MYIntroductionView.h"
-
- @interface mainView : UITabBarController<MYIntroductionDelegate>
-
- @end
3.在主界面对应的.m文件中加入如下代码。
如我的mainView.m
- -(void)viewDidAppear:(BOOL)animated{
-
-
- NSUserDefaults * settings1 = [NSUserDefaults standardUserDefaults];
- NSString *key1 = [NSString stringWithFormat:@"is_first"];
- NSString *value = [settings1 objectForKey:key1];
- if (!value)
- {
-
- 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!"];
-
-
- MYIntroductionPanel *panel2 = [[MYIntroductionPanel alloc] initWithimage:[UIImage imageNamed:@"SampleImage2"] title:@"Your Ticket!" description:@"MYIntroductionView is your ticket to a great tutorial or introduction!"];
-
-
-
-
-
-
-
-
-
-
-
- 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];
- [introductionView setBackgroundImage:[UIImage imageNamed:@"SampleBackground"]];
-
-
-
- introductionView.delegate = self;
-
-
- [introductionView showInView:self.view];
-
-
- NSUserDefaults * setting = [NSUserDefaults standardUserDefaults];
- NSString * key = [NSString stringWithFormat:@"is_first"];
- [setting setObject:[NSString stringWithFormat:@"false"] forKey:key];
- [setting synchronize];
- }
- }
代码不难。
viewDidAppear是在视图即将显示时候调用的方法。 这里看头寻找沙盒中 is_first中是否有数据,如果没有,就说明是第一次运行程序,则显示引导页并且在沙盒对应位置写入数据。
如果有数据,就说明不是第一次运行,则跳过,不显示引导页。
很简单的操作。当然有更好的方法,也有更好的类库,这只是我个人选择的方法罢了。