如何在 -(void)touchesMoved 期间仅调用一次方法?

2023-11-30

我在用- (void) touchesMoved每当我做某事enter特定的框架,在本例中是按钮的区域。

我的问题是,我只希望它在我进入框架时做一些事情 -not当我在框架内移动手指时。

有谁知道我如何在框架内时仅调用一次方法,并且如果我在同一个 touchMove 中重新输入它,仍然允许我再次调用它。

谢谢。

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [[event touchesForView:self.view] anyObject];

    CGPoint location = [touch locationInView:touch.view];

    if(CGRectContainsPoint(p1.frame, location))
    {
            //I only want the below to me called 
            // once while I am inside this frame
        [self pP01];
        [p1 setHighlighted:YES];
    }else {
        [p1 setHighlighted:NO];
    }
}

您可以使用某些属性来检查当您进入特定区域时是否已经调用了该代码。它看起来像突出显示的状态p1对象(不确定它是什么)可能适合:

if(CGRectContainsPoint(p1.frame, location))
{
   if (!p1.isHighlighted){ // We entered the area but have not run highlighting code yet
        //I only want the below to me called 
        // once while I am inside this frame
      [self pP01];
      [p1 setHighlighted:YES];
   }
}else { // We left the area - so we'll call highlighting code when we enter next time
    [p1 setHighlighted:NO];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 -(void)touchesMoved 期间仅调用一次方法? 的相关文章

随机推荐

  • 通过 OBEX Object PushProfile 通过蓝牙接收文件

    我的设备使用 OBEX 对象推送配置文件 OPP 通过蓝牙发送数据 使用 adb logcat 我看到我的 Android 设备收到一个连接 但中止此连接 08 22 11 14 37 939 I BtOppRfcommListener 2
  • xslt1.0 替换不起作用

    我的 URL 带有一些特殊字符 我想替换它们 并且我正在使用 xslt 1 0 所以我编写如下代码
  • 限制 Docker 仅公开来自特定 IP 地址的端口

    如何限制 Docker 暴露的容器端口仅来自 IP 列表 只有此 IP 列表才能访问此端口 我尝试过 iptables I DOCKER p tcp dport PORT X j REJECT reject with icmp port u
  • GDB远程调试:无法停止线程

    我有一个数据库服务器在一个目标上 我像这样发射gdbserver 2345 bin ls 接下来 我从主机连接 gdb 并尝试发出下一个命令 gdb target remote 192 168 1 2 2345 Remote debuggi
  • 在 Access SQL 中查询“工作周”

    我有一个来自 MS Excel 2007 的公式 它返回特定月份内特定日期的工作周 B1 IF AND WEEKDAY A2 1 lt gt 1 A2 DATE YEAR A2 MONTH A2 1 A2 WEEKDAY A2 1 7 IF
  • 用于向量和矩阵计算的高性能数学库

    在哪里可以找到矢量和矩阵计算的快速库 我需要高性能 Update I need it for games calculations Go for Blaze Also check out the bench marking in paral
  • 即使显式调用析构函数后也会自动销毁对象

    以下程序 include
  • 应用程序在 iOS 9 上卡在启动屏幕中且没有错误

    我的应用程序在 iPhone 和模拟器上的 iOS 9 中都卡在启动屏幕上 我可以在 iOS 8 或更低版本的设备和模拟器上运行它 没有任何问题 我的同事在开发同一个应用程序时也遇到了完全相同的问题 没有错误或任何东西 只是挂在启动屏幕上
  • 在 Android 中的 FirestoreRecyclerAdapter 中显示 ServerValue.TIMESTAMP

    我想在列表中显示服务器时间戳 实际上是日期 这FirestoreRecyclerAdapter由此类提供 仅保留时间戳相关方法 public class Lista private Long timestamp private Map
  • 基于日期比较R的子集数据集

    我有一个数据集 如下所示 Col1 Col2 Col3 CutoffDate 12001 Yes 2008 08 15 2008 08 10 12001 Yes 2008 08 22 2008 08 10 12001 Yes 2008 08
  • 如何修复从 GEOS 转换为 s2 引起的球面几何误差

    我有同样的问题连接空间数据时如何解决球面几何故障 我以前可以使用的代码现在不能用于从 GEOS 到 s2 的转换 我不确定如何创建此错误的可重现示例 sf 包附带的示例数据集可以很好地使用此代码 因为我确信它们也已更新为可以与 s2 包一起
  • 带控件的表单级别的按键

    我想知道是否可以处理KeyPress表单级别的事件当有控制时以一种形式 当表单上没有控件时 我可以实现此目的 但是当我添加某些内容 例如按钮 时 表单会失去焦点 并且我无法将其返回 即使使用Me Focus 焦点仍位于按钮上 有办法做到吗
  • 成功更改 JS 中的不可变或原始数据类型。那么这些是原语还是 JS 概念是错误的?

    据我所知 JS 中有 4 个原语 直接存储值 而不是引用另一个内存位置的原语 String Number Boolean Symbol 我没有数undefined null 因为它们是特殊的数据类型 并且不通过继承链共享对象构造函数 现在
  • 清除 ASP.NET 中的文本框历史记录

    如何清除文本框的历史记录 我已设置 autocomplet off 并将 AutoCompleteType 设置为禁用 当我在 Chrome Firefox 中双击文本框时 会出现历史记录 文本 因此当我单击它时 文本将被插入到文本框中 有
  • 何时使用 OpenCL API 标量数据类型?

    我一直无法理解何时使用 OpenCL API 数据类型 如 cl float cl uchar 等 可以在此处找到 http www khronos org registry cl sdk 1 0 docs man xhtml scalar
  • Java:如何使用 switch 语句[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 Java 中比较字符串 我无法理解如何使用 Java switch 语句 在执行其中一个 case 语句中的方法后 它仍然会转到默认语句并运行该语句 这是代码 Scanner scanner
  • Sympy:求解具有初始条件误差的微分方程

    SinceSympy版本 1 2 PythonSympy已经实现了在给定一些初始条件的情况下求解简单微分方程中的常数的能力 我试图测试此功能 但不断出现我不知道如何解决的错误 The 文档表示初始条件的格式如下 我尝试遵循实现该功能的实际拉
  • Java 和 SSH:维护连接

    目标 通过一个连接和多个会话或一个持久会话远程控制 ssh 服务器 问题 1 我目前使用 sshj 通过 SSH 进行一些远程控制 它运行良好 但我似乎无法让它正确处理提示 主机不提供真正的root权限 只提供sudo i 所以我需要先登录
  • 在android上模糊图像

    我想要模糊图像 我用过 public Bitmap mohu Bitmap bmpOriginal int hRadius int vRadius int width height r g b c a gry c1 a1 r1 g1 b1
  • 如何在 -(void)touchesMoved 期间仅调用一次方法?

    我在用 void touchesMoved每当我做某事enter特定的框架 在本例中是按钮的区域 我的问题是 我只希望它在我进入框架时做一些事情 not当我在框架内移动手指时 有谁知道我如何在框架内时仅调用一次方法 并且如果我在同一个 to