//

//  guideView.h

//  07-功能引导-李洪强

//

//  Created by vic fan on 16/1/4.

//  Copyright © 2016年 李洪强. All rights reserved.

//

#import <UIKit/UIKit.h>

/**

*  定义代理协议

*/

@protocol guideViewDelegate <NSObject>

/**

*  定义可选实现的方法

*/

@optional

- (void)removeFromSuperView:(UIView *)view;

@end

@interface guideView : UIView

/**

*  定义代理对象

*/

@property(nonatomic,assign)id <guideViewDelegate> delegate;

@end



//

//  guideView.m

//  07-功能引导-李洪强

//

//  Created by vic fan on 16/1/4.

//  Copyright © 2016年 李洪强. All rights reserved.

//

#import "guideView.h"

@interface guideView ()

@end;

@implementation guideView

//使用手码创建控件时,一般我们在该方法里动态添加组件&设置自身的一些属性。外界调用init方法,系统内部也会自动调用这个方法

- (instancetype)initWithFrame:(CGRect)frame{

self = [super initWithFrame:frame];

if (self) {

[self createView:frame];

}

return self;

}

-(void)createView:(CGRect )frame

{

self.backgroundColor = [UIColor blackColor];

self.alpha = 0.5;

/**

*  定义一个数组用来存放图片

*/

NSArray *picName = @[@"app_ass.png",@"dashang.png",@"jinzhang.png",@"zichan.png"];

/**

*  for循环

*/

for(int i= 0; i< 4; i++){

/**

1 - 初始化imageView

*/

UIImageView *imageView = [[UIImageView alloc]init];

/**

*  2 - 把给每一个imageView设置图片

*/

imageView.image = [UIImage imageNamed:picName[i]];

/**

*  3 - 给每一个imageView设置tag值

*/

imageView.tag = i+100001;

/**

4 - 判断

*  如果是第一张图片的话

*/

if (i==0) {

imageView.hidden =NO;

imageView.frame = CGRectMake(50, 100, 150, 150);

}else if(i==1){

imageView.hidden =YES;

imageView.frame = CGRectMake(100, 200, 150, 150);

}else if(i==2){

imageView.hidden =YES;

imageView.frame = CGRectMake(200, 400, 150, 150);

}else if(i==3){

imageView.hidden =YES;

imageView.frame = CGRectMake(100, 500, 150, 150);

}

/**

*  5 - 可以与用户交互

*/

imageView.userInteractionEnabled = YES;

/**

6 - 创建一个手势

*/

UITapGestureRecognizer *tapGesture1=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(imageViewClicked:)];

// 7  -将手势添加到对应的imageView

[imageView addGestureRecognizer:tapGesture1];

//  8 -  把imageView1添加到view上

[self addSubview:imageView];

}

}

-(void)imageViewClicked:(UITapGestureRecognizer *)tapGR

{

UIImageView *imageView1 = (id)[self viewWithTag:100001];

UIImageView *imageView2 = (id)[self viewWithTag:100002];

UIImageView *imageView3 = (id)[self viewWithTag:100003];

UIImageView *imageView4 = (id)[self viewWithTag:100004];

if (tapGR.view.tag == 100001) {

imageView1.hidden = YES;

imageView2.hidden = NO;

imageView3.hidden = YES;

imageView4.hidden = YES;

}else if (tapGR.view.tag == 100002){

imageView1.hidden = YES;

imageView2.hidden = YES;

imageView3.hidden = NO;

imageView4.hidden = YES;

}else if (tapGR.view.tag == 100003){

imageView1.hidden = YES;

imageView2.hidden = YES;

imageView3.hidden = YES;

imageView4.hidden = NO;

}else if (tapGR.view.tag == 100004){

imageView1.hidden = YES;

imageView2.hidden = YES;

imageView3.hidden = YES;

imageView4.hidden = YES;

[tapGR.view removeFromSuperview];

//  [self removeFromSuperview];

/**

*  判断代理

*/

if([self.delegate respondsToSelector:@selector(removeFromSuperView:)]){

[self.delegate removeFromSuperView:self];

}

}

}

iOS 中实现功能引导页面的更多相关文章

  1. iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客

    原文地址:http://blog.csdn.net/qq_31810357/article/details/51111702 前言:近期研究了一下语音识别,从百度语音识别到讯飞语音识别:首先说一下个人 ...

  2. iOS中 语音识别功能/语音转文字教程详解 韩俊强的博客

    每日更新关注:http://weibo.com/hanjunqiang  新浪微博 原文地址:http://blog.csdn.net/qq_31810357/article/details/5111 ...

  3. Shepherd – 在应用程序中轻松实现引导功能

    Shepherd 是一个指导用户使用应用程序的 JavaScript 库.它使用 Tether——另一个开源库,实现所有的步骤.Tether 确保你的步骤不会溢出屏幕或被剪裁.你可以很容易地指导用户使 ...

  4. IOS中调用系统的电话、短信、邮件、浏览功能

    iOS开发系列--通讯录.蓝牙.内购.GameCenter.iCloud.Passbook系统服务开发汇总 2015-01-13 09:16 by KenshinCui, 26990 阅读, 35 评 ...

  5. iframe ios中h5页面 样式变大

    实际项目开发中,iframe在移动设备中使用问题还是很大的,说一说我的那些iframe坑 做过的这个后台管理框架,最开始的需求是PC,但随着业务需要,需要将项目兼容到ipad,后台的框架也是使用的开源 ...

  6. 如何在ios中集成微信登录功能

    在ios中集成微信的登录功能有两种方法 1 用微信原生的api来做,这样做的好处就是轻量级,程序负重小,在Build Settings 中这样设置 然后设置 友盟的设置同上,但是要注意,加入你需要的所 ...

  7. 阻止iOS中页面弹性回滚,只允许div.phone_body的区块有弹性

    使用说明:只要替换选择器:var selector = '.phone_body'; /** * 阻止iOS中页面弹性回滚,只允许div.scroller的区块有弹性 */ (function () ...

  8. iOS 应用首次开启 出现引导页面

    关于引导页面 ,可以是独立的一个视图控制器控制的滚动视图. 重点是处理 如何判断app是首次开启 而调用这个视图控制器得方法. 逻辑如下: -(BOOL)isFirstLoad { if(!标记第一次 ...

  9. iOS 添加功能引导图

    iOS 添加功能引导图 首次安装app之后,打开app首页,有一张功能引导图,其实最简单的一种做法是,直接在这个首页上加一个蒙层图片. 在蒙层上用气泡显示文字注明功能介绍,这个蒙层图片,让你们的UI设 ...

随机推荐

  1. codeforces733-C. Epidemic in Monstropolis 贪心加链表

    题意 现在有一个怪兽序列a[i],权值大的怪兽可以吃权值小的怪兽,吃完之后权值大的怪兽的权值会变成两者权值的和,相邻的怪兽才能吃 吃完之后,位置合并,队列前移,从左到右重新编号,重复这一过程, 然后给 ...

  2. 【JDK】电脑上安装多个JDK ,修改JAVA_HOME后没有作用

    电脑上装了 C:\Program Files\Java\jdk1.6.0_43      C:\Program Files\Java\jdk1.7.0_80     C:\Program Files\ ...

  3. Android自动化测试之Monkey Test 安装(二)

    因为Monkey Test是在eclipse上执行的,所以玩monkey test的时候要先配置安卓开发环境 一.Android开发环境搭建指南 1.安装JDK JDK下载链接:http://www. ...

  4. [导入]Eclipse 导入/编译 Hadoop 源码

    http://www.cnblogs.com/errorx/p/3779578.html 1.准备工作 jdk: eclipse: Maven: libprotoc :https://develope ...

  5. 解决ScrollView嵌到listView冲突问题

    方法一: 把下面的方法放在绑定适配器操作的下面就行. /** * 重新计算ListView的高度,解决ScrollView和ListView两个View都有滚动的效果,在嵌套使用时起冲突的问题 * @ ...

  6. RxJava

    Grokking RxJava, Part 1: The Basics Grokking RxJava, Part 2: Operator, Operator Grokking RxJava, Par ...

  7. express-4 质量保证(1)

    QA 在Web开发中,质量可以分解为四个维度: 到达率: 到达率是指产品的市场普及程度,即查看网站或使用服务的人数.到达率和盈利能力是正相关关系:访问网站的人越多,购买产品或服务的人就越多.从开发的角 ...

  8. struts2总结二:第一个简单的struts2程序

    到struts2官网上面下载struts2的jar包,然后解压. struts2的入门程序,实现简单的用户登录,struts2里面的helllo world.利用eclipse的开发工作如下: 1.首 ...

  9. The 2015 China Collegiate Programming Contest H. Sudoku hdu 5547

    Sudoku Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Subm ...

  10. 【Oracle】表空间容量修改

    -- 查看表空间容量 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...