zoukankan      html  css  js  c++  java
  • Objectiv-C 为UIImageView,UILabel等默认没有交互的控件添加点击事件

    在OC的UI中,一些常用的控件如UIImageView,UILabel等默认是没有交互的,就是在控件上点击,双击或者滑动等操作是没有效果的。

    下面的方法较为完美的解决了控件的交互问题:

    (以UIImageView为例,其他控件类似)

    首先,创建一个UIImageView:

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
    
    //设置imageView图片
    [imageView setImage:[UIImage imageNamed:@"first.jpg"]];
    
    //设置imageView的userInteractionEnabled为YES,即开启交互
    imageView.userInteractionEnabled = YES;
    

    然后,创建一个手势,这里以单击手势为例:

    //创建单击手势tap,并指定处理方法为SingleClick
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(SingleClick:)];
    

    第三步,为imageView添加手势

    [imageView addGestureRecognizer:tap];
    

    最后,实现单击方法SingleClick

    - (void)SingleClick:(UITapGestureRecognizer *)tap
    {
        //通过手势tap获取到单击的View
        UIImageView *imageView = (UIImageView *)[tap view];
        
        //下面就可以对单击的View进行操作了
        //注意:强转类型时要确保正确,什么类型控件添加了手势tap,转型就是什么类型
    }
    

      


    转载请注明:作者SmithJackyson

  • 相关阅读:
    C++ 二元作用域运算符(::)
    C 桶排序
    C 递归的选择排序
    C 归并算法
    C 可变长实参列表
    C条件编译的一些例子
    C实现将中缀算术式转换成后缀表达式
    Activiti6-数据库配置-dbconfig(学习笔记)
    idea在Terminal中使用maven指令
    Spring Boot的web开发
  • 原文地址:https://www.cnblogs.com/smithjackyson/p/5115803.html
Copyright © 2011-2022 走看看