定义一个按钮按下显示遮盖层的效果

1.点击按钮,出现遮盖层,松开按钮,遮盖层消失

2. 长按按钮,出现遮盖层,松开按钮,遮盖层消失

3. 点击按钮,出现遮盖层,拖拽按钮,遮盖层消失

UIButton *btnBottom = [[UIButton alloc]initWithFrame:CGRectMake(1,1,100,100)];

[btnBottom addTarget:self action:@selector(buttonClickTouchDown:) forControlEvents:UIControlEventTouchDown];

[btnBottom addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

[self addSubview:btnBottom];

#pragma mark-

#pragma mark-手指按下触发的事件(手指在按钮范围内)

-(void)buttonClickTouchDown:(UIButton *)btn

{

NSLog(@"手指按下触发的事件");

//按钮点击效果

UIView *vi = [[UIView alloc]initWithFrame:btn.frame];

vi.tag = 100;

vi.backgroundColor = [UIColor grayColor];

vi.alpha = 0.2;

[self addSubview:vi];

}

#pragma mark-

#pragma mark-点击图片跳转链接(当手指在按钮的范围内抬起的时候触发)

//根据btn.btnClickUrlString的值进行界面的跳转

-(void)buttonClick:(UIButton *)btn

{

NSLog(@"手指insd触发的事件");

//手指抬起的时候,取掉遮盖层

for (UIView *vi in [self subviews]) {//防止多次点击出现多层view

if (vi.tag == 100) {

[vi removeFromSuperview];

}

}

//点击按钮需要做的事情。。。。

}

#pragma mark-

#pragma mark-点击图片跳转链接(当手指在按钮内部拖动的时候触发)

-(void)buttonClickDragInside:(UIButton *)btn

{

NSLog(@"手指DragInside触发的事件");

//手指抬起的时候,取掉遮盖层

for (UIView *vi in [btn subviews]) {

//防止多次点击出现多层view

if (vi.tag == 100) {

[vi removeFromSuperview];

}

}

}

//因为我的btn添加在一个UIScrollerView 上面,所以在sc滚动的时候点击会出现bug,所以在sc滚动的时候将btn的交互性关闭,当sc减速停止的时候将btn的交互性在打开

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

//当sc滚动的时候,关闭按钮的交互性(因为滚动会影响事件的判断)

if (scrollView.tag == 2) {

for (UIButton *btn in [scrollView subviews])

{

NSLog(@"scrollViewDidScroll");

btn.userInteractionEnabled = NO;

}

}

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

//当sc停止滚动的时候,打开按钮的交互性

if (scrollView.tag == 2) {

for (UIButton *btn in [scrollView subviews])

{

NSLog(@"scrollViewDidEndScrollingAn");

btn.userInteractionEnabled = YES;

}

}

}

时间: 2024-11-08 15:33:40

定义一个按钮按下显示遮盖层的效果的相关文章

一次和别人争吵一个按钮,点击后显示导航;再点击不显示的效果,是否一定以及必须用js?

事情经过是这样的,我们组一个说话很喜欢用一定,肯定的哥们,吃午饭的时候拿了自己做的一个UI库,头部有一个按钮 点击展开,再次点击收缩,他意思说一个按钮无法记录点击状态,必须使用js.然后我看了一眼,心想target有可能能做到这个效果,然后我说不一定,他还是说肯定,还要跟我打赌说:如果我能做出来,给我500块.如果我做不出怎样? 因为到底具体还没有实践过,而且我只是说不一定,所以我没有当场和他打赌,然后他就自己给我定条件说: 如果做不出,你请大家吃顿饭. 听他这么说我就有点不高兴了,你自己说肯定

点击按钮显示隐藏层 和 切换按钮同时显示多个隐藏层

按钮点击显示隐藏层(再次点击按钮则隐藏层关闭): HTML部分: <button type="button" id="show" onclick="showHidden()">点我显示隐藏层</button> <div id="hidden" style="display:none">我是隐藏层.</div> JS部分: <script type='te

Android开发学习笔记--给一个按钮定义事件

学习Android的第一天,了解了各种布局,然后自己动手画出了一个按钮,然后给按钮定义了一个事件是弹出一条消息显示“我成功了!”字样,具体过程如下: 1.修改布局文件activity_main.xml加入如下语句(我把原来的那个文本框删掉了) <Button android:id="@+id/button1" android:onClick="button_click" android:layout_width="wrap_content"

C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值

关于PropertyGrid控件的详细用法请参考文献: 1.C# PropertyGrid控件应用心得 2.C#自定义PropertyGrid属性 首先定义一个要在下拉框显示的控件: using System; using System.Windows.Forms; namespace Simon.WinForms.Examples.PropertyGrid { public class EditorControl : UserControl { public EditorControl() {

【Bootstrap3.0建站笔记二】按钮可下拉弹出层

1.按钮可下拉弹出层: HTML代码: <div class="porpre"> <div class="input-group-btn" style="width: auto"> <a href="CustomerInformationDetails.aspx?Id=7&phone=15821789965&RecommendationNumber=54231896&tabPage=

关于导航按钮在其他尺寸下显示问题

关于导航按钮在其他尺寸下显示问题1.Bootstrap第4177行@media (min-width: 768px) {  .navbar-header {    float: left;  }}修改为@media (min-width: 992px) {  .navbar-header {    float: left;  }}2.Bootstrap第4194行@media (min-width: 768px) {  .navbar-collapse {    width: auto;   

定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式。 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Compl

因标题框有限,题目未显示完整,以下再放一份: 定义一个复数(z=x+iy)类Complex,包含: 两个属性:实部x和虚部y 默认构造函数 Complex(),设置x=0,y=0 构造函数:Complex(int i,int j) 显示复数的方法:showComp()将其显示为如: 5+8i或5-8i 的形式. 求两个复数的和的方法:(参数是两个复数类对象,返回值是复数类对象)public Complex addComp(Complex C1,Complex C2) 求两个复数的差的方法:(参数

python Tkinter 基础添加一个按钮,在按钮上显示文字,并设置文字颜色

code; # Tkinter 基础添加一个按钮,在按钮上显示文字,并设置文字颜色 import tkinter as tk # 面向对象编程 class App(): def __init__(self, master): frame = tk.Frame(master) # 框架??不是很理解 frame.pack() # 创建一个按钮,fg前景色:蓝色 self.testButton = tk.Button(frame, text = "hello", fg = "bl

仿知乎程序 fragment的切换以及toolbar在不同页面下显示的menu不同

       我们在看知乎的时候,你会发现,首页,发现,关注,收藏,草稿这五项,你在点击之后进入到相应页面之后,侧滑菜单还在,你左侧滑一下,这个侧滑菜单还在,而提问,左滑屏幕,这个页面就没有,有点像返回上一页的感觉. 从操作来看,五页面应该是fragment之间的切换,而提问是单独的activity.     我们先从几个fragment入手,这里我们建立五fragment页,选择继承自android.support.v4.app.Fragment,因为这五个页面基本上都一样,就是简单的一个布局