实现按住连续事件触发的优雅方式?

2024-03-02

我经常需要通过按住按钮来触发一系列事件。想一个+增加字段的按钮:点击它应该将其增加 1,但点击并按住应该每秒增加 1,直到释放按钮。另一个示例是在音频播放器类型应用程序中按住后退或前进按钮时的擦洗功能。

我通常采用以下策略:

  1. On touchDownInside我设置了一个具有所需间隔的重复计时器。
  2. On touchUpInside我使计时器无效并释放。

但对于每个这样的按钮,我需要一个单独的计时器实例变量、2 个目标操作和 2 个方法实现。 (这是假设我正在编写一个通用类并且不想对同时触摸的最大数量施加限制)。

有没有更优雅的方法来解决我所缺少的这个问题?


通过以下方式注册每个按钮的事件:

[button addTarget:self action:@selector(touchDown:withEvent:) forControlEvents:UIControlEventTouchDown];
[button addTarget:self action:@selector(touchUpInside:withEvent:) forControlEvents:UIControlEventTouchUpInside];

对于每个按钮,设置tag属性:

button.tag = 1; // 2, 3, 4 ... etc

在处理程序中,执行您需要的任何操作。通过标签识别按钮:

- (IBAction) touchDown:(Button *)button withEvent:(UIEvent *) event
{
     NSLog("%d", button.tag);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

实现按住连续事件触发的优雅方式? 的相关文章

  • iOS - 在 UITabBar 上方获取所需的阴影

    我试图让我的标签栏阴影看起来像这张图片中看到的那样 这样做的最佳方法是什么 我正在使用 Objective C Thanks 您可以使用以下代码为任何 UI 对象提供阴影 tabBar layer shadowOffset CGSize w
  • 当表格为空时 iPhone UITableView 图像背景

    我想当我的 UITableView 为空时显示图像背景 目前 我尝试将 UIImageView 添加到包含表格的视图控制器 但 XCode 不允许这样做 有没有好的方法呢 您可以在表视图顶部添加图像视图或更改表视图的背景视图 Check i
  • Objective C 宏附加到字符串

    我认为这是一件非常简单的事情 但由于我是 iOS 开发和 Objective C 的新手 所以我无法弄清楚 define RESTFUL PATH PREFIX https gogch com gch restful define LOGI
  • 如何让位置音频在 SceneKit 中工作?

    我在使位置音频在 SceneKit 中工作时遇到问题 从 Xcode 生成的 SceneKit 游戏模板开始 我将以下代码添加到handleTap 方法的末尾 let ship scnView scene rootNode childNod
  • 使用什么来移动 UIView self.frame 或 self.transform 属性?

    这个问题我有点困惑 我知道我可以改变观点self frame origin 但我发现有一个名为 变换 的属性 我认为这是用于在屏幕上移动我的视图等 也许我有点不明白 所以我想知道 我必须使用哪个房产来搬家UIView 或者它的子类 另一个类
  • UIView 周围的虚线边框

    如何在周围添加虚线边框UIView 像这样的东西 如果您喜欢子层 还有另一种方法 在您的自定义视图的 init 中 输入以下内容 border 是 ivar border CAShapeLayer layer border strokeCo
  • 视频中的图像/文本叠加 swift

    我正在使用 swift 在视频中使用图像叠加来实现水印效果 我正在使用AVFoundation为此 但不知何故我没有成功 以下是我的覆盖图像 文本的代码 let path NSBundle mainBundle pathForResourc
  • admob ios7错误音频框架

    我正在将 admob SDK 当前的 集成到我的上一个应用程序 IOS7 Xcode5 中 并且出现了一个新错误 在新项目上也是如此 我想我错过了一些东西 但我多次重新启动该过程 但错误仍然存 在 Undefined symbols for
  • 旋转 GPUImageTiltShiftFilter - GPUImage

    我想要一个非水平 GPUImageTiltShiftFilter 旋转 我想将其旋转到任意旋转角度 我还希望过滤器速度快 可以通过带有 UIRotationGestureRecongizer 的 UI 进行旋转 我该怎么做呢 啊 想通了 不
  • 如何在 iOS 6 中强制 UIViewController 为纵向

    As the ShouldAutorotateToInterfaceOrientation在 iOS 6 中已弃用 我用它来强制特定视图仅肖像 在 iOS 6 中执行此操作的正确方法是什么 这仅适用于我的应用程序的一个区域 所有其他视图都可
  • 在 Swift 中,如何为具有自动布局的 UIView 制作动画,就像页面滑入一样?

    我尝试创建一个 UIView 来表示一个大小与设备屏幕相同的页面 由于该应用程序支持方向 因此我使用 AutoLayout 来构建它 它工作正常 直到我尝试将页面动画化以从右侧滑入 经过一番研究后 我能想到的最好的办法是 myView UI
  • 如何使用固定宽度和自动布局正确缩放图像?

    我有一个动态 UIImage 和一个固定宽度为 280 0px 的 UIImageView 并且我正在使用自动布局 在 UIImage 视图上 我设置了宽度和高度约束 并降低了高度约束的优先级 我选择了 aspect fit 并将内容拥抱和
  • 如何在多个视图中显示相同的导航栏?

    我可以为一个视图重现以下导航栏 但是 一旦我单击按钮后移至下一个视图 我就会丢失最右边的两个图标 搜索 个人资料 据我所知 从故事板设置导航项目通常是按视图进行的 我可以为每个视图复制这些项目 但我想知道是否有更好的方法来完成一次 是否有教
  • dyld:无法加载插入的库,但可以在模拟器和另一部 iPhone 上使用

    所以我在过去的几个小时里在我的应用程序上编码 在某个时候我决定在我的 iPhone 8 13 3 1 上启动我的应用程序而不是使用模拟器 13 3 它立即崩溃并出现以下错误 dyld warning could not load inser
  • 如何将NSTextView的格式化内容转换为字符串

    我需要将 NSTextView 的内容从 Mac 应用程序传输到 iOS 应用程序 我使用 XML 作为传输文件格式 所以我需要将 NSTextView 的内容 文本 字体 颜色等 保存为字符串 有什么办法可以做到这一点吗 一种方法是存档
  • 使用自定义格式将字符串转换为 NSDate [重复]

    这个问题在这里已经有答案了 可能的重复 NSString 到 NSDate https stackoverflow com questions 1353081 nsstring to nsdate iPhone 如何将 yyyyMMddTh
  • iOS 开发:如何强制 UIWebView 加载 Facebook 的非移动版本?

    我正在深入研究 iOS 开发 当我尝试在 UIWebView 中加载特定的 Facebook 粉丝页面时 它会加载该网站的移动版本 该版本仅加载粉丝页面的墙 而不是我需要加载的特定选项卡 在我的应用程序的 iPad 版本中 UIWebVie
  • iOS:应用程序在安装应用程序时不会征求用户的许可。每次都获取 kCLAuthorizationStatusNotDetermined - Objective-c 和 Swift

    我正在尝试在我的 iOS 应用程序中获取用户位置 我首先在我的项目中包含了核心定位框架 然后单击按钮 我将调用核心位置 api 如下所示 当我尝试在设备中安装它时 核心位置从不询问用户许可 当我尝试获取单击按钮时的位置时 我得到 kCLAu
  • iOS 11 中的密码自动填充快速输入栏

    iOS 11 中引入了一项新功能 应用程序密码自动填充 此功能允许用户直接从键盘快速输入栏使用其应用程序中保存的密码 https techcrunch com 2017 06 08 ios 11s new password autofill
  • iOS 11 特定设置部分的 URL 方案停止工作

    我的应用程序使用 URL 方案将用户直接带到 设置 常规 关于 部分 以下 URL 在 10 3 x 中工作正常 应用程序首选项 根 常规 路径 关于 然而 这个 URL 方案在 iOS 11 GM 版本中不再有效 它仅启动 设置 应用程序

随机推荐

  • Laravel ORM从自引用表获取N级层次结构JSON

    我在用LARAVEL 4 with MySQL后端 我有一个self referencing带列的表id name type and parent Here parent is foreign key列的Id 表中数据如下 id name
  • 使用 Angular-CLI 安装第 3 方应用程序

    我是 angular cli 的新手 我想安装 npm 库 mdbootstrap 我按照这里的说明进行操作 Angular CLI 说明 https github com angular angular cli global librar
  • WebStorm错误:表达式语句不是赋值或调用

    我正在使用 WebStorm 但收到一个我无法理解的错误 Node js MongoDB var mongoose require mongoose mongoose Promise global Promise mongoose conn
  • 正确检查 nil sqlite 文本列

    我有一个分配给字符串的 sqlite 字符串列 我需要在分配之前确保它不为零 我正在这样做 char isNil sqlite3 column text selectstmt 2 if isNil nil myName NSString s
  • OS X Byobu 垂直分割

    我目前在 OS X 上使用 iTerm2 和 byobu 但我不知道如何在 OS X 上垂直分割屏幕 在 Linux 上 我可以使用 Ctrl F2 垂直分割屏幕 但在 OSX 上则不行 不行 这要归功于苹果的不同键盘 我用谷歌搜索了所有解
  • java 缓冲图像:检测黑色像素

    我有这个简单的代码来浏览 24 位彩色 Windows bmp 文件 BufferedImage mapa BMPDecoder read new File maps map bmp final int xmin mapa getMinX
  • 什么时候会发生下溢?

    我陷入了计算的情况1 77e 308 10触发下溢异常 但计算1 777e 308 10才不是 这很奇怪 因为 当浮点的真实结果发生下溢 操作的幅度小于 即接近于零 可表示为普通浮点数的最小值 目标数据类型 来自算术下溢 维基百科 换句话说
  • 三.js透明物体遮挡

    在 Three js 场景中 我希望有一个不可见的对象 但仍然遮挡场景中的其他对象 就好像它是可见的一样 这可以通过 Three js 库实现吗 这是一个例子 Suppose I have a three js scene that con
  • 在elasticsearch实例上打开开放的GCE防火墙以进行外部连接

    我刚刚使用 Click to Deploy 在 GCE 中创建了一个 elasticsearch 集群 但我只能使用隧道来访问它 就我而言 这不是一个选择 因为我不想向其他开发人员授予 gcloud 访问权限 我想为elasticsearc
  • 访问生成 T-SQL 中的 ROW_NUMBER() 等结果的查询

    MS Access 中有 ROW NUMBER 函数吗 如果有 请让我知道它的任何语法 因为我被困在这里 我尝试过论坛 但我得到了 sql server 语法 以下是我的查询 select ROW NUMBER OVER ORDER BY
  • OnClickListener 不适用于 GridView 中的第一项

    我在创建基于 GridView 的日历时遇到问题 这是网格 这应该是一个填充了事件的日历 因此我让我的适配器实现 OnClickListener 并为日历中的每个按钮设置该侦听器 它适用于每个按钮EXCEPT第一个 在本例中为 30 当我单
  • Java Web 应用程序“过期会话的事件监听器”

    有没有办法在运行Java代码之后HttpServletRequest Session已到期 如果会话过期 我需要进行数据库调用 回调和监听器将是有用的 javax servlet http HttpSessionListener The 雅
  • 包含修订历史记录的 CouchDB 视图

    我对 CouchDB 很陌生 已经缺少 SQL 了 无论如何 我需要创建一个视图来发出文档的一些属性以及所有修订 ID 像这样的东西 function doc if doc type template emit doc owner id d
  • VS Xaml 设计器错误

    我的 WPF 应用程序中的 Xaml 文件出现错误 我无法在 Visual Studio 设计器或 Blend 中看到我的控件 但是 该应用程序可以完美编译并运行 在 Blend 中 它说存在无效的 Xaml 并且该错误根本没有任何意义 但
  • 尝试将本地页面加载到 JavaFX webEngine 中

    我的 JavaFX 应用程序的选项卡上有一个 webView 组件 我正在尝试将本地存储的 HTML 页面加载到 WebView browser new WebView WebEngine webEngine browser getEngi
  • 监听附加端口 Microsoft Azure Nodejs

    我正在端口 process env PORT 1337 Microsoft Azure 上的默认端口 上运行 Nodejs 应用程序 Azure Web App 我还需要监听 websocket 的附加端口 在我本地 我使用的是 8000
  • 如何禁用 DateTimePicker 控件上的某些日期?

    如何禁用选定的日期DateTimePicker这样用户就无法选择它们 我知道这在 Web 窗体中是可能的 但在 Windows 窗体中我无法执行此操作 我怎样才能实现这个目标 您执行此操作的难易程度取决于您想要限制的日期 例如 如果您只想指
  • 如何从 Android 电话簿中选择联系号码到我的应用程序中?

    全部 我想从我的应用程序数据库中的android电话簿中获取号码 我已经用下面的代码尝试过 但这里正在获取人名 而不是我想要电话簿中的号码并希望将其存储在我的数据库中 如何实现这一目标 任何人都可以指导我 Override public v
  • 如何存储通用引用

    我需要在类中存储通用引用 我确信引用的值将比类的寿命更长 有这样做的规范方法吗 这是我想出的一个最小的例子 它似乎有效 但我不确定我是否做对了 template
  • 实现按住连续事件触发的优雅方式?

    我经常需要通过按住按钮来触发一系列事件 想一个 增加字段的按钮 点击它应该将其增加 1 但点击并按住应该每秒增加 1 直到释放按钮 另一个示例是在音频播放器类型应用程序中按住后退或前进按钮时的擦洗功能 我通常采用以下策略 On touchD