zoukankan      html  css  js  c++  java
  • ios 点击按钮,显示遮盖层的效果

    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])

            {

                btn.userInteractionEnabled = NO;

            }

        }

     

    }

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

    {

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

        if (scrollView.tag == 2) {

            for (UIButton *btn in [scrollView subviews])

            {

                btn.userInteractionEnabled = YES;

            }

        }

    }

     

     

     

    爱code的妖妖
  • 相关阅读:
    css如何去掉select原始样式
    Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL
    eclispe+maven+ssm+sql_server/mysql配置
    解决Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0问题
    eclipse alt+/智能提示错误问题
    去除input边框 input去除边框 去除input获取焦点时的蓝色外边框
    java对sql server的增删改查
    java连接sql server 2008
    卸载sql server 2008
    FTP的vsftpd.conf含义
  • 原文地址:https://www.cnblogs.com/yaoyao0110/p/4882345.html
Copyright © 2011-2022 走看看