Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果[通俗易懂]

Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果[通俗易懂]一:代码实现varmV:UIView! varflag=falseoverridefuncviewDidLoad(){super.viewDidLoad()mV=UIView(frame:CGRect(x:100,y:100,width:100,height:100…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

 

一:代码实现

   var mV:UIView!
  var flag = false

    override func viewDidLoad() {

        super.viewDidLoad()

        mV = UIView(frame: CGRect(x: 100, y: 100, width: 100, height: 100 ))

        mV.backgroundColor = UIColor.red

        self.view.addSubview(mV)

    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

        for touch:AnyObject in touches{

//            方法一

//            //获取用户点击的坐标

//            var point = (touch as AnyObject).location(in: self.view)

//            //将用户点击的点坐标,从self.view.layer转换到mV.View.layer的点坐标

//            point = self.mV.layer.convert(point, from: self.view.layer)

//            print("point\(point)")

//            let point2 = self.mV.layer.convert(point, to: self.view.layer)

//            print("point2\(point2)")

//

//            if self.mV.layer.contains(point ){

//                print(1)

//            }

            
            //方法二

            //获取用户点击的坐标

            var point = (touch as AnyObject).location(in: self.view)

            //返回在图层层次中包含point的view.layer的最远子代,即获取到用户点击的View的layer

            let layer = view.layer.hitTest(point)

            if layer == mV.layer{

                //模拟连续点击效果

                let t:UITouch = touch  as! UITouch

                let i = t.tapCount

                if t.tapCount >= 2{

                    flag = true

                }
                if flag{
                    print(i)
                }
            }
        }
        flag = false
    }

 

二:效果显示

Swift 通过touchesBegan 方法获取用户点击的view,模拟连续点击效果[通俗易懂]

 

转载于:https://www.cnblogs.com/chenxiaopao/p/9107999.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/164182.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微型计算机的性能主要取决于什么,微型计算机硬件系统的性能主要取决于什么?…[通俗易懂]

    微型计算机硬件系统的性能主要取决于“微处理器”。微处理器是集成在一片中大规模集成电路芯片上的中央处理器,能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。微处理器是集成在一片中大规模集成电路芯片上的中央处理器,这些电路执行控制部件和算术逻辑部件的功能。微型计算机硬件系统的性能主要取决于微处理器。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件…

    2022年4月4日
    192
  • 零基础学Java(6)控制流程

    零基础学Java(6)控制流程控制流程与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程。块作用域我们首先要了解块(block)的概念。块是指由若干条Java语句组成的语句,并用一对大括号括起来。块确定了变

    2022年8月7日
    11
  • 2G到5G基站架构演进[通俗易懂]

    文章目录2G3G4G5G2G2G通信系统采用3级网络架构,即:BTS-BSC-核心网。2G核心网同时包含CS域和PS域。2G通信系统起初主要采用一体式基站架构。一体式基站架构如下图所示,基站的天线位于铁塔上,其余部分位于基站旁边的机房内。天线通过馈线与室内机房连接。一体式基站架构需要在每一个铁塔下面建立一个机房,建设成本和周期较长,也不方便网络架构的拓展。后来发展成为分布式基站架构。分布式基站架构将BTS分为RRU和BBU。其中RRU主要负责跟射频相关的模块,包括4大模块:中频模块、收发信机模块

    2022年4月9日
    50
  • LINUX Shell常用命令

    LINUX Shell常用命令LinuxShell常用shell命令一、文件、目录操作命令1、ls命令功能:显示文件和目录的信息ls 以默认方式显示当前目录文件列表ls-a显示所有文件包括隐藏文件ls-l显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行ls-lh显示文件的大小,以容易理解的格式印出文件大小(例如1K234M2G)ls-lt显示文件,按照修改时…

    2022年5月31日
    55
  • android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」

    android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到ACTION_MOVE和ACTION_UP,我决定下决心写个测试的小程序,来研究一个触摸事件从上往下是怎么传递和处理的。先说下大概的流程吧,这个应该在很多博客中都有讲解:当一个事件来临的时候,会先传递给最外层的ViewGroup(比如LinearLayout,FrameLayout),如果这个ViewGrou…

    2025年10月24日
    6
  • js禁止前进后退

    js禁止前进后退在ie6,7,8下有效。

    2022年7月25日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号