[翻译] EAIntroView
EAIntroView

https://github.com/ealeksandrov/EAIntroView

This is highly customizable drop-in solution for introduction views. Some features (remember, most features are optional and can be turned off):
这是一个高度可定制的导航页解决方案,这是一些特性(记住,大部分特性都是可选的,以及可以关闭的):
- beautiful demo project to look on some examples 一个漂亮的demo演示了好多例子
- customizability is unlimited, one can make complex introView with animations and interactive pages, so do not limit yourself with existing examples
- 定制是完全没有限制的.发挥你的想象力,不要局限于提供的几个例子
- for each basic page: 对于每一个基本的页面
- background (with cross-dissolve transition between pages) 背景
- custom iOS7 motion effects (parallax) on background iOS7的视差效果
- title view (+ Y position) 标题view
- title text (+ font, color and Y position) 标题文本
- description text (+ font, color, width and Y position) 描述文本
- subviews array (added to page after building default layout) 子类view构成的数组
- possibility to set your own custom view for page: 你也可以设计自定义view
- pageWithCustomView:
- pageWithCustomViewFromNibNamed:
- possibility to set block action on page events: 你也可以设定每页的事件触发
- pageDidLoad
- pageDidAppear
- pageDidDisappear
- many options to customize parent view: 你还可以设定父视图
- swipe from last page to close
- switching pages with one simple tap
- custom background image or color
- custom page control
- custom skip button
- pinned titleView (+ Y position, can be hidden on some pages)
- delegate protocol to listen: 监听代理
- introDidFinish:
- intro:pageAppeared:withIndex:
- actions on IntroView: IntroView上面的行为设定
- setPages:
- showInView:animateDuration:
- hideWithFadeOutDuration:
- setCurrentPageIndex:animated:
- storyboard/IB support
CocoaPods
CocoaPods is the recommended way to use EAIntroView in your project. 你可以用 CocoaPods 来安装
- Simply add this line to your
Podfile:pod 'EAIntroView', '~> 2.7.0' 将pod 'EAIntroView', '~> 2.7.0'添加到你的Podfile中 - Run
pod install. 运行 pod install - Include with
#import "EAIntroView.h"to use it wherever you need. 导入头文件#import "EAIntroView.h" - Subscribe to the
EAIntroDelegateto enable delegate/callback interaction. 实现代理方法即可
Manual installation
- Add
EAIntroPageandEAIntroViewheaders and implementations to your project (4 files total). 将 EAIntroPage.h/m 与 EAIntroView.h/m 添加到你的项目当中. - Add EARestrictedScrollView header and implementation to your project (2 files total). 将 EARestrictedScrollView 添加到你的项目当中.
- Include with
#import "EAIntroView.h"to use it wherever you need. 导入头文件#import "EAIntroView.h" - Subscribe to the
EAIntroDelegateto enable delegate/callback interaction. 实现代理方法即可
How To Use It
Sample project have many examples of customization. Here are only simple ones.
项目中已经包含了好多例子,这里简单的列举一例:
Step 1 - Build Pages
Each page created with [EAIntroPage page] class method. Then you can customize any property, all of them are optional. Another approach is to pass your own (can be nib), custom view in EAIntroPage, this way most other options are ignored.
每一页都是由方法 [EAIntroPage page] 生成.然后,你可以自定义这些属性.当然,你也可以用你自己的方式创建出自定义的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"];
Step 2 - Create Introduction View
Once all pages have been created, you are ready to create the introduction view. Just pass them in right order in the introduction view. You can also pass array of pages after IntroView's initialization, it will rebuild its contents.
一旦所有页码都创建出来了,你就可以创建出介绍页了.你只要按照顺序传入参数即可.
EAIntroView *intro = [[EAIntroView alloc] initWithFrame:self.view.bounds andPages:@[page1,page2,page3,page4]];
Don't forget to set the delegate if you want to use any callbacks.
不要忘记设置代理.
[intro setDelegate:self];
Step 3 - Show Introduction View
[intro showInView:self.view animateDuration:0.0];
Storyboard/IB
Since 1.3.0 EAIntroView supports init from IB. Since 2.0.0 EAIntroPage supports it too.
1.3.0版本的EAIntroView支持从IB创建.2.0.0版本的EAIntroPage也支持从IB创建.
- Drop
UIViewto your IB document. 设置一个IB的UIView - Set its class to
EAIntroView. 将其类别设置成EAIntroView - Create
IBOutletproperty in your view controller:@property(nonatomic,weak) IBOutlet EAIntroView *introView;. 从你的控制器创建出属性@property(nonatomic,weak) IBOutlet EAIntroView *introView; - Connect
IBOutletwithEAIntroViewin IB. 通过IB连接EAIntroView - Build array of pages (you can use
pageWithCustomViewFromNibNamed:here with separate nibs for each page). 然后,你就可以创建每一页了 - Pass pages array to
EAIntroViewproperty insetPages:. 将page数组的值赋给EAIntroView的setPages属性
Author
Created and maintained by Evgeny Aleksandrov (@EAleksandrov).
License
EAIntroView is available under the MIT license. See the LICENSE file for more info.
[翻译] EAIntroView的更多相关文章
- Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面
Xamarin.iOS - 利用Settings插件与EAIntroView制作App的欢迎界面 关于欢迎界面 很多App第一次启动都会有一个欢迎界面,欢迎界面往往决定这用户对App的第一映像,所以欢 ...
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- 《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
- 《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
- 《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
- 【翻译】Awesome R资源大全中文版来了,全球最火的R工具包一网打尽,超过300+工具,还在等什么?
0.前言 虽然很早就知道R被微软收购,也很早知道R在统计分析处理方面很强大,开始一直没有行动过...直到 直到12月初在微软技术大会,看到我软的工程师演示R的使用,我就震惊了,然后最近在网上到处了解和 ...
随机推荐
- JDK自带工具介绍
JDK工具一览表 工具名称 功能描述 appletviewer.exe 用于运行并浏览applet小程序. apt.exe 注解处理工具(Annotation Processing Tool),主要用 ...
- for循环的3个参数
1.最常用的方法是用来遍历集合 /** **第一个参数:表示循环的初始值,或初始条件,这里是i=0; **第二个参数:是循环的条件,这里是当i小于list的长度时; **第三个参数:每次循环要改变的操 ...
- 页面常见布局以及实现方法--flex
页面布局是前端工程师的基本功之一,总结分析各种布局实现方法,可以让自己快速定位哪种方法实现功能,同时可以做到现最大程度的兼容. 一.水平居中 假设:最基本机构 .parent>.child 1. ...
- hadoop学习笔记(十):MapReduce工作原理(重点)
一.MapReduce完整运行流程 解析: 1 在客户端启动一个作业. 2 向JobTracker请求一个Job ID. 3 将运行作业所需要的资源文件复制到HDFS上,包括MapReduce程序打包 ...
- Deep Q-Network 学习笔记(四)—— 改进②:double dqn
这篇没搞懂...这里只对实现做记录. 修改的地方也只是在上一篇的基础上,在“记忆回放”函数里,计算 target Q 时取值做下调整即可. def experience_replay(self): & ...
- javascript加上标签
在javascript脚本中可以加上标签,方便javascript程序进行快速定位,标签一般由一个合法的字符名称加上一个冒号组成,标签可以放在任意行的位置,这样可以为该行设置一个标记,然后再 结构体中 ...
- 微信小程序头部栏实现
效果如图: 也就是实现红色框的部分. wxml代码 <view class="header {{scrollDown?'scrolled':''}}"> <vie ...
- Mybatis中的jdbcType的作用
使用MyBatis框架做更新操作时,在该字段需要更新的内容为空时,就会出现1111错误,也就是无效的列类型,这个时候你就要使用jdbcType.至于什么时候要使用到javaType我还没遇到过,而且我 ...
- 使用CSS3改变文本选中的默认颜色——张鑫旭
关于浏览器文字选中颜色 以我的系统举例(xp 默认主题),浏览器上页面文字选中后默认的背景色是一种蓝色, 不同浏览器的颜色有些许差异,但大致相同,文字颜色也近乎白色,如下图所示,截自Firefox3. ...
- 基于AlipayJSBridge封装的H5网页支付宝打赏、网站打赏、个人免签支付,支付宝转账打赏支付组件
之前公司要做个打赏用户的功能,网站查询一些资料之后把一些api封装之后提供了一个demo组件供大家下载:扫描下图二维码 功能: 支付宝H5 Js方案,调起应用内页面,自动设定转账金额和收款理由,用户付 ...