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的妖妖
  • 相关阅读:
    C#进行Visio二次开发之设备状态跟踪
    C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处
    C#进行Visio二次开发之界面设计及架构设计
    Sqlserver常用函数例子说明
    香港生肖采集及规则分析软件
    使用NVelocity0.5实现服务器端页面自动生成
    C#进行Visio二次开发之判断图纸是否有设备
    C#进行Visio二次开发之图纸缩放操作的实现
    C#进行Visio开发的事件处理
    导线应力及弧垂计算相关资料
  • 原文地址:https://www.cnblogs.com/yaoyao0110/p/4882345.html
Copyright © 2011-2022 走看看