EAIntroView - 简单的 iOS 介绍
这是高度可定制、即插即用的介绍视图解决方案。一些功能(记住,大多数功能都是可选的,可以关闭)
- 精美的演示项目,可以看看一些示例
- 可定制性无限制,可以制作包含动画和交互页面的复杂 introView,所以不要限于现有示例
- 对于每个基本页面
- 背景(页面之间有交叉溶解过渡效果)
- 自定义 iOS7 动画效果(视差)在背景上
- 标题视图(+ Y 位置)
- 标题文本(+ 字体、颜色和 Y 位置)
- 描述文本(+ 字体、颜色、宽度和 Y 位置)
- 子视图数组(构建默认布局后在页面后添加)
- 可以设置自定义视图用于页面
- pageWithCustomView
- pageWithCustomViewFromNibNamed
- 可以为页面事件设置 block 动作
- pageDidLoad
- pageDidAppear
- pageDidDisappear
- 有许多选项可以自定义父视图
- 从最后一页滑动关闭
- 简单点击切换页面
- 自定义背景图像或颜色
- 自定义页面控件
- 自定义跳过按钮
- 固定的标题视图(+ Y 位置,可以在某些页面上隐藏)
- 委托协议来监听
- introDidFinish
- intro:pageAppeared:withIndex
- 在 IntroView 上的操作
- setPages
- showInView:animateDuration
- hideWithFadeOutDuration
- setCurrentPageIndex:animated
- 支持 storyboard/IB
- 还有很多...
安装
您可以使用 Carthage、CocoaPods 或 完全手动 来设置 EAIntroView
。
Carthage
-
将
EAIntroView
添加到项目的Cartfile
。github "ealeksandrov/EAIntroView"
-
在项目目录中运行
carthage update
。 -
在你的应用程序目标的“通用”设置选项卡中,“链接框架和库”部分,从磁盘上的
Carthage/Build/iOS/
文件夹中拖放 EAIntroView.framework 和 EARestrictedScrollView.framework。 -
在你的应用程序目标的“构建阶段”设置选项卡中,点击“+”图标,选择“新运行脚本阶段”。创建一个运行脚本,内容如下
/usr/local/bin/carthage copy-frameworks
将框架的路径添加到“输入文件”
$(SRCROOT)/Carthage/Build/iOS/EAIntroView.framework $(SRCROOT)/Carthage/Build/iOS/EARestrictedScrollView.framework
并将复制的框架路径添加到“输出文件”
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/EAIntroView.framework $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/EARestrictedScrollView.framework
CocoaPods
-
将 EAIntroView 添加到项目的
Podfile
。pod 'EAIntroView'
-
在项目目录中运行
pod update
或pod install
。
手动设置
-
将 EARestrictedScrollView 头文件和实现文件添加到项目中(总共 2 个文件)。
-
将
EAIntroPage
和EAIntroView
头文件和实现文件添加到项目中(总共 4 个文件)。 -
现在你可以通过添加以下导入来使用
EAIntroView
import EAIntroView
#import <EAIntroView/EAIntroView.h>
如何使用
示例项目有很多自定义示例。这里只提供了一些简单的示例。
第一步 - 构建页面
使用[EAIntroPage page]
类方法创建每个页面。然后您可以自定义任何属性,它们都是可选的。另一种方法是传递您自己的自定义视图(可以是nib)到EAIntroPage
中,这样大多数其他选项都将被忽略。
// basic
EAIntroPage *page1 = [EAIntroPage page];
page1.title = @"Hello world";
page1.desc = sampleDescription1;
// custom
EAIntroPage *page2 = [EAIntroPage page];
page2.title = @"This is page 2";
page2.titleFont = [UIFont fontWithName:@"Georgia-BoldItalic" size:20];
page2.titlePositionY = 220;
page2.desc = sampleDescription2;
page2.descFont = [UIFont fontWithName:@"Georgia-Italic" size:18];
page2.descPositionY = 200;
page2.titleIconView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"title2"]];
page2.titleIconPositionY = 100;
// custom view from nib
EAIntroPage *page3 = [EAIntroPage pageWithCustomViewFromNibNamed:@"IntroPage"];
page3.bgImage = [UIImage imageNamed:@"bg2"];
第2步 - 创建介绍视图
一旦所有页面都创建好了,您就可以创建介绍视图了。只需按顺序将它们传递到介绍视图中。您也可以在初始化IntroView之后传递页面数组,它会重新构建其内容。
EAIntroView *intro = [[EAIntroView alloc] initWithFrame:self.view.bounds andPages:@[page1,page2,page3,page4]];
如果您想使用任何回调,请记得设置代理。
[intro setDelegate:self];
第3步 - 显示介绍视图
[intro showInView:self.view animateDuration:0.0];
Storyboard/IB
从1.3.0版本开始,EAIntroView
支持从Interface Builder初始化。从2.0.0版本开始,EAIntroPage
也支持它。
- 将
UIView
拖放到您的IB文档中。 - 将其类设置为
EAIntroView
。 - 在视图控制器中创建
IBOutlet
属性:@property(nonatomic,weak) IBOutlet EAIntroView *introView;
。 - 在IB中将
IBOutlet
与EAIntroView
连接。 - 构建页面数组(您可以在其中使用
pageWithCustomViewFromNibNamed:
,为每个页面使用不同的nib)。 - 将页面数组传递给
setPages:
中的EAIntroView
属性。
作者
由Evgeny Aleksandrov(@ealeksandrov)创建和维护。
许可证
EAIntroView
基于 MIT 许可证提供。更多信息请参阅 LICENSE.md 文件。