简介

高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的demo.

入门

安装

安装后,引入” EAIntroView.h”并设置EAIntroDelegate代理即可.

使用CocoaPods安装

pod 'EAIntroView', '~> 2.7.0'

手动安装

添加EAIntroPage ,EAIntroView和EARestrictedScrollView 的.h和.m文件到你的工程即可.

可定制性

EAIntroView 可高度定制,不要仅限于现有的demo.
EAIntroView 是有一个展示用的IntroView和一组展示页面来组成一系列引导展示页.
基本使用方式是: 创建一组EAIntropage(可自定义,具体使用见下文),使用这组EAIntropage 创建一个EAIntroView的视图IntroView,将这个IntroView showInView到想要展示的视图上(见下文)

每一个用来展示的基本页面都具有

* background(有交叉的页之间的过渡)
* 在background上定制iOS7运动的效果(视差)
* title视图(y 坐标)
* title 文本(字体,颜色,y坐标)
* description 文本(字体,颜色 ,宽度,y坐标)
* 子视图数组(在建立默认的布局后添加到界面上)

设置页面自定义视图:

  • pageWithCustomView://自定义视图
  • pageWithCustomViewFromNibNamed://自定义nib

每个页面上的事件

  • pageDidLoad 页面加载
  • pageDidAppear 页面显示
  • pageDidDisappear 页面消失

许多选项来自定义父视图:

  • swipe from last page to close //滑到最后一个关闭
  • switching pages with one simple tap//轻拍切换
  • custom background image or color//设置背景图片,颜色
  • custom page control//定义page control
  • custom skip button //自定义跳过按钮
  • pinned titleView //自定义 标题视图

代理协议:

  • introDidFinish: //完成引导
  • intro:pageAppeared:withIndex: //引导页切换

IntroView支持的方法:

* setPages://设置界面
* showInView:animateDuration://设置展示动画
* hideWithFadeOutDuration://显示和消失时间
* setCurrentPageIndex:animated://设置当前显示的界面以及动画




使用:

第一步: 创建界面

每一个界面需要通过[EAIntroPage page]来创建,你可以自定义属性,所有的属性都是可选的.或者你可以通过你自定义的view(可以是nib),使用这种方式大多数选项就被忽略了.例如:

// 基本的创建方式
EAIntroPage *page1 = [EAIntroPage page];
page1.title = @"Hello world";
page1.desc = sampleDescription1;
// 自定义的,这些属性都是可选的
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;
//nib的自定义视图
EAIntroPage *page3 = [EAIntroPage pageWithCustomViewFromNibNamed:@"IntroPage"];
page3.bgImage = [UIImage imageNamed:@"bg2"];

第二步:创建介绍视图

所有的页面创建完成后,创建介绍视图,只是在介绍视图中按顺序展示.也可以通过传递给IntroView一组视图初始化, IntroView将重建视图的内容.

 EAIntroView *intro = [[EAIntroView alloc] initWithFrame:self.view.bounds andPages:@[page1,page2,page3,page4]];

//设置代理
[intro setDelegate:self];

第三步: 展示引导图

[intro showInView:self.view animateDuration:0.0];

Storyboard/IB可视化编程支持

从EAIntroView 1.3.0 开始支持Storyboard/IB

  • 拖拽UIView 到IB文档
  • 设置它的class为EAIntroView
  • 创建viewcontroller 的IBOutlet 属性,
    @property(nonatomic,weak) IBOutlet EAIntroView *introView;
  • 在IB中链接IBOutlet 和 EAIntroView
  • 创建界面数组(可以使用”pageWithCustomViewFromNibNamed”),一个的nib对应每个界面.
    在setPages方法中将数组传递给EAIntroView 属性.

EAIntroView–高度可定制的iOS应用欢迎页通用解决方案的更多相关文章

  1. iOS 开源一个高度可定制支持各种动画效果,支持单击双击,小红点,支持自定义不规则按钮的tabbar

    TYTabbarAnimationDemo 业务需求导致需要做一个tabbar,里面的按钮点击带有动画效果,tabbar中间的按钮凸出,凸出部分可以点击,支持badge 小红点等,为此封装了一个高度可 ...

  2. [iOS]终极横竖屏切换解决方案

    [iOS]终极横竖屏切换解决方案 大家的项目都是只支持竖屏的吧?大多数朋友(这其中当然也包括博主),都没有做过横屏开发,这次项目刚好有这个需求,因此把横竖屏相关的心得写成一遍文章供诸位参考. 01.综 ...

  3. iOS资讯详情页实现—WebView和TableView混合使用(转)

    iOS资讯详情页实现—WebView和TableView混合使用 如果要实现一个底部带有相关推荐和评论的资讯详情页,很自然会想到WebView和TableView嵌套使用的方案. 这个方案是WebVi ...

  4. iOS 键盘遮挡输入框万能解决方案(多个输入框)

    效果图如下: 思路分析: 代码: 知识点: 问题: 效果图如下: 思路分析: 当我们有很多输入框时,有时候键盘弹出来会遮挡着输入框.我们需要获取输入框和键盘相对于最外层视图的位置来判断是否遮挡,如果遮 ...

  5. ios 2017启动页(Launch Screen Images)、图标(App Icon)尺寸大小

    ios 2017启动页(Launch Screen Images).图标(App Icon)尺寸大小   iPhone Portrait iOS 8,9-Retina HD 5.5 (1242×220 ...

  6. Tippy.js - 免费开源且高度可定制的气泡提示独立组件

    推荐一个非常优秀的 web 气泡提示独立UI组件. 介绍 Tippy.js 是一款用于Web的完整工具提示,弹出菜单,下拉菜单和菜单解决方案.适用于鼠标,键盘和触摸输入. 特点 超轻量的纯 javas ...

  7. RDVTabBarController--可自由定制的iOS底部导航控件

    RDVTabBarController:一个十分完善的tabBarController,可以自定义角标个数,爽的停不下来. RDVTabBarController地址:RDVTabBarControl ...

  8. iOS App引导页功能实现

    一.写作原因 以前都没有想着来写点东西,今天遇到件事情让我决定每次还是要做记录.因为以前自己可以轻松的完成pod spec的配置,但是今天在做的时候还是忘了遇到了很多坑.pod spec配置遇到的坑不 ...

  9. 浅谈iOS视频播放的N种解决方案

    简       注册登录 添加关注 作者 Maru2016.03.22 20:46* 写了4349字,被135人关注,获得了207个喜欢 字数1621 阅读2895 评论43 喜欢159 header ...

随机推荐

  1. maya2014安装失败如何卸载重装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...

  2. MongoDB数据库常用操作

    推荐文章 --- 一天精通MongoDB数据库 注意: monogdb数据在使用之后必须及时 mongodb.close()否则后台崩溃. 1. 删除文档中的一个字段 db.<集合名>.u ...

  3. 《nginx 四》双机主从热备

    lvs+keepalived+nginx实现高性能负载均衡集群 LVS作用 LVS是一个开源的软件,可以实现传输层四层负载均衡.LVS是Linux Virtual Server的缩写,意思是Linux ...

  4. pat1019. General Palindromic Number (20)

    1019. General Palindromic Number (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN ...

  5. 管理员账户权限不足 解决方案 类似没有XXX权限之类的问题解决方法

  6. 存储过程 返回值 procedure return values

    存储过程有三种返回: 1. 用return返回int型数据 2. 用返回参数返回结果,可以返回各种数据类型(通过游标来循环查询结果每一行) 3. 直接在存储过程中用select返回结果集,可以是任意的 ...

  7. vueHistory 模式下,布置到服务器上路由刷新会报nginx404错误

    之前写完vue项目后,布置到服务器,用nginx反向代理后,一开始进去,进各种路由都是没问题的,但是一旦f5刷新后就会出现一个nginx404的错误. 经过翻阅vue文档后,发现这是vueHistor ...

  8. The fool doth think he is wise, but the wise man knows himself to be a fool.

    The fool doth think he is wise, but the wise man knows himself to be a fool.愚者总自以为聪明,智者则有自知之明.

  9. 轻松完成excel读写操作- 基于POI的框架BingExcel的使用(2)

    在进行 类转换时候,系统默认注册了一些转换器,当然你也可以自定局部或者全局的转换器.下面进行具体使用说明  java类说明 对应的java实体类,其属性必须要有__@CellConfig__注解,此注 ...

  10. 《ArcGIS Runtime SDK for Android开发笔记》——(1)、Android Studio下载与安装

    1.前言 Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工 ...