简介

高度可定制的应用欢迎页通用解决方案,可高度定制,不要仅限于现有的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. WSGI学习系列WSME

    Introduction Web Services Made Easy (WSME) simplifies the writing of REST web services by providing ...

  2. HDU 5412——CRB and Queries——————【线段树套Treap(并没有AC)】

    CRB and Queries Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  3. 谈谈Quartz中遇到的深坑

    最近在项目开发的时候,根据业务需求,需要配置为自定义Quartz任务(即:用户可以自定义任务执行时间) 但是在即将写完的时候遇到一个非常头疼的问题: 一个redisTemplate 与 workOrd ...

  4. Spring框架中stopwatch(秒表)

    StopWatch对应的中文名称为秒表,经常我们对一段代码耗时检测的代码如下: long startTime = System.currentTimeMillis(); // 你的业务代码 long ...

  5. Windbg工具使用

    https://www.cnblogs.com/startpoint/p/4194052.html https://www.cnblogs.com/lyl6796910/p/7613664.html ...

  6. 用IDEA创建一个SpringBoot项目

    next后等待项目构建完成 运行方法一: 方法二:

  7. Eclipse reference

    http://download.csdn.net/download/ling_min/4318719 http://www.qualityeclipse.com/eclipse-gef http:// ...

  8. Windows server R2 2008上部署gogs git

      所需的环境 1.     安装mysql                       安装路径:F:\MySQL Server 5.7 2.     安装gogs                  ...

  9. 01、Scala介绍与安装

    01.Scala介绍与安装 1.1 Scala介绍 Scala是对java语言脚本化,特点是就是使不具备脚本化的java语言能够采用脚本化方式来使用,使其具有脚本语言简单.所见即所得的特点,并且编程效 ...

  10. 浩顺晶密K-5 打卡时间设置

    公司有一台浩顺晶密K-5打卡设备,因为时间异常需要重新调整,设备外部就几个按钮,全部按了一遍发现没有任何变化,所以肯定是哪里操作不对,然后用钥匙打开这个设置,上面有一排文字,分别是设置.+.-.确认等 ...