问题标签 [touch-event]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8134 浏览

objective-c - 在 UITextView 中获取触摸事件

Apple 不为UITextView. 我正在开发的项目包括可读和可编辑的注释,我使用的是UITextView. 请帮我解决这个问题——我怎样才能为我的项目获取触摸事件?

0 投票
1 回答
506 浏览

ios - 如何在 PC 上测试 iPhone 的“触摸事件”

我想在 iPhone/iPod touch 上进行测试。

0 投票
1 回答
1173 浏览

iphone - 模态UIViewController覆盖View时取消UITouch事件

我正在编写一个应用程序,用户必须用手指在屏幕上移动一些东西并放下它们。为此,我使用了必须移动的每个视图的 touchesBegan,touchesEnded... 功能。

问题是有时视图被使用 [UIViewController presentModalViewController] 函数显示的视图覆盖。一旦发生这种情况,我移动的 UIView 就会停止接收触摸事件,因为它被掩盖了。但是没有事件告诉我它停止接收事件,所以我可以重置移动视图的状态。

下面是一个例子来说明这一点。这些函数是主窗口中显示的 UIView 的一部分。它监听触摸事件,当我将手指拖动一段距离时,它会呈现一个覆盖所有内容的模态视图。在运行日志中,它打印接收到的触摸事件。

但是当我测试应用程序并触发要显示的模态对话框时,运行日志中的输出如下。

[会话开始于 2010-03-27 16:17:14 -0700。] 2010-03-27 16:17:18.831 modelTouchCancel[2594:207] touchesBegan 2010-03-27 16:17:19.485 modelTouchCancel[2594:207 ] touchesMoved 2.000000 2010-03-27 16:17:19.504 模型TouchCancel[2594:207] touchesMoved 4.000000 2010-03-27 16:17:19.523 模型TouchCancel[2594:207] touchesMoved 16.00000016:17:19.53-278 模型TouchCancel [2594:207] touchesMoved 26.000000 2010-03-27 16:17:19.596 modelTouchCancel[2594:207] touchesMoved 68.000000 2010-03-27 16:17:19.624 modelTouchCancel[2594:207] touchesMoved:0100-85.03-20000-016-6 17:19.640 modelTouchCancel[2594:207] touchesMoved 125.000000 2010-03-27 16:17:19.641 modelTouchCancel[2594:207] 显示模态

当 UIView 的触摸事件被模态视图中断时如何重置 UIView 的状态有什么建议吗?

0 投票
4 回答
9108 浏览

ios - 如何在 UIScrollView 的超级视图中检测“Touch Down”?

我有一个UIView包含 aUIScrollView并且我希望能够UIView在用户点击UIScrollView.

我已经尝试在我的中包含所有的 touchesBegan/Ended/Cancelled 处理程序,但是当点击mainUIViewController中包含的内容时,它们都不会被触发。UIScrollViewUIView

实现这一目标的最佳方法是什么?

0 投票
2 回答
2234 浏览

android - 在 Android 上拦截活动和按钮上的触摸事件

我有一个带有 ImageButton 的 Android 活动。我想在单击按钮时执行一些逻辑并为按下状态显示不同的图像,但也接收活动上的触摸事件。

默认情况下,只有按钮接收触摸事件。如果我将按钮的可点击属性设置为 false,那么只有活动接收触摸事件。

在活动中实现触摸事件和按钮单击的最佳方法是什么?

0 投票
1 回答
1945 浏览

iphone - 如何过滤 UIScrollView 的触摸事件?

我有一个显示 PDF 的视图。它应该是可缩放的,所以我还创建了一个 UIScrollView,并在它的委托中实现了 viewForZoomingInScrollView 以返回 PDF 视图。到目前为止,一切都很好。但是,当用户到达缩放的 PDF 页面的边缘时,我想翻到下一页。听起来很简单,但我似乎无法弄清楚如何去做。

我尝试了一些不同的方法:

  1. 使用 scrollViewDidScroll 来检测滚动是否到达边缘。这里的问题是,如果 zoomScale 为 1,因此无法滚动,则永远不会调用此函数。但是 UIScrollView 仍然吞下所有的触摸事件,所以我也无法检测到 touchesMoved 到达边缘。不放大时将 canCancelContentTouches 设置为 NO 不是一个选项,因为这也会阻止放大。

  2. 继承 UIScrollView,并将一些触摸事件转发给下一个响应者。不幸的是,当 UIScrollView 检测到拖动操作并取消触摸时,即使 UIScrollView 子类也不再调用 touchesMoved 和 touchesEnded。同样,将 canCancelContentTouches 设置为 NO 也不好,因为这也会阻止某些所需的 UIScrollView 功能。

  3. 在滚动视图之上创建一个透明视图(作为它的兄弟),以便该视图首先获取所有触摸事件,然后将一些触摸转发到滚动视图。不幸的是,滚动视图没有响应这些调用。

  4. 我不能使用 touchesShouldCancelInContentView,因为它没有将实际的触摸作为参数,而且我是否希望滚动视图处理触摸事件还取决于触摸事件本身的属性(例如触摸移动在我们已经处于边缘的方向不应被滚动视图取消,但在另一个方向上的移动可能是)。

看起来 UIScrollView 所做的任何事情都不是从 touchesBegan / touchesMoved 发起的,而是在此之前收到一些关于触摸方式的通知。可能以某种我无法拦截或复制的无证方式。

那么有没有什么方法可以得到关于在 UIScrollView 上完成的所有触摸动作的通知,同时仍然能够(在某些条件适用时)使用 UIScrollView 进行缩放和滚动?

0 投票
4 回答
97237 浏览

ios - 在 UILabel 中处理触摸事件并将其连接到 IBAction

好的,所以我UILabel在界面生成器中创建了一个显示一些“点击开始”的默认文本。

当用户点击UILabel我希望它触发 IBAction 方法时: -(IBAction)next;它会更新标签上的文本以说出新内容。
如果这允许我简单地将连接从我的方法拖到我的标签上,然后像使用按钮一样选择内部修饰,那将非常方便。但唉,没有雪茄。

所以无论如何,我想我的问题是,我是否必须进行子类化UILabel才能使其正常工作?或者有什么方法可以在标签上拖动一个按钮,但使其不透明为 0%。还是我缺少一个更简单的解决方案?

0 投票
1 回答
1743 浏览

iphone - png透明度注册触摸事件iphone?

我将三个 png 的“320 x 480px”加载到单独的 UIImageViews 中。png 的名称是身体、嘴巴、帽子。通过将图像堆叠在一起,我创建了一个可以轻松更换身体部位的角色。看照片>

http://www.1976inc.com/dev/iphone/beast.jpg

我的问题是,当您触摸最顶部的 UIImageView 时,包括透明度在内的整个图像都会注册触摸事件。我想要做的是让触摸事件仅注册在不透明的 png 部分上。因此,使用户可以与所有三个 UIImageView 进行交互。

我确信这很简单,但我是 iphone 开发的新手,我似乎无法弄清楚。


更新 所以我意识到完成我想要做的最简单的方法是创建循环并为每个 png 创建一个上下文,然后获取发生触摸事件的像素的颜色数据。如果像素代表透明区域,我将移至下一张图像并尝试相同的操作。这有效,但只是第一次。例如,当我第一次点击主视图时,我得到了这个输出

2010-07-26 15:50:06.285 colorTest[21501:207] 帽子
2010-07-26 15:50:06.286 colorTest[21501:207] 偏移量:227024 颜色:RGB A 0 0 0 0
2010-07-26 15 :50:06.293 colorTest[21501:207] 口
2010-07-26 15:50:06.293 colorTest[21501:207] 偏移量:227024 颜色:RGB A 0 0 0 0
2010-07-26 15:50:06.298 colorTest[ 21501:207] 身体
2010-07-26 15:50:06.299 colorTest[21501:207] 偏移量:227024 颜色:RGB A 255 255 255 255

这正是我想看到的。但是,如果我再次单击同一区域,我会得到。

2010-07-26 15:51:21.625 colorTest[21501:207] 帽子
2010-07-26 15:51:21.626 colorTest[21501:207] 偏移量:283220 颜色:RGB A 255 255 255 255
2010-07-26 15 :51:21.628 colorTest[21501:207] 口
2010-07-26 15:51:21.628 colorTest[21501:207] 偏移量:283220 颜色:RGB A 255 255 255 255
2010-07-26 15:51:21.630 colorTest[ 21501:207] 主体
2010-07-26 15:51:21.631 colorTest[21501:207] 偏移量:283220 颜色:RGB A 255 255 255 255

这是我正在使用的代码;

触摸事件存在于应用程序的主视图中

它调用自定义类中的一个方法,该类扩展了 imageView 该函数返回 touchEvent 下像素的颜色。


更新 2 感谢您的快速回复。我不确定我是否跟随你。如果我将 hidden 更改为 true,则 UIImageView“层”将被隐藏。我想要的是 png 的透明部分不注册触摸事件。因此,例如,如果您查看我在帖子中包含的图像。如果您单击蠕虫、茎或叶“它们都是同一个 png 的一部分”,则该 ImageView 会触发一个触摸事件,但如果您触摸圆圈,则该 ImageView 会触发一个触摸事件。顺便说一句,这是我用来将它们放置在视图中的代码。

0 投票
1 回答
1454 浏览

c# - 将 System.Windows.DragDrop.DoDragDrop() 与触摸事件一起使用?

我目前正在开发一个应用程序,可以将项目从一个 ListBox 拖放到另一个 ListBox。这在使用鼠标时工作得很好。

但是,当尝试对触摸屏执行相同操作(产生真正的触摸事件)时,这将不起作用。

在我的日志中,我看到实际检测到 TouchDown 和 Move。但是对 System.Windows.DragDrop.DoDragDrop() 的调用不会像鼠标使用期间那样阻塞。它立即返回,因此拖动手势在它开始后立即结束。

我假设 DragDrop.DoDragDrop() 仅适用于鼠标使用,并且在整个拖动过程中依赖于 MouseButtonDown?!

那么,是否有与触摸事件一起使用拖放的等价物?

感谢您的任何提示

0 投票
3 回答
1773 浏览

java - 如何暂时禁用/绕过 Android OnTouchEvent

我目前正在使用该活动

为了提供用户对我正在编写的游戏的反馈。此事件触发一些需要一些时间才能完成的游戏控制事件(因为涉及动画)。我遇到的问题是在动画期间,如果我一直触摸屏幕(AKA 触发此事件),我将收到超时错误:

10-02 21:58:30.776:错误/ActivityManager(67):原因:keyDispatchingTimedOut

基本上,在动画运行时,我不需要这个事件,尽管将它排队会很好。

我可以做些什么来防止超时并将事件排队或暂时禁用它?

谢谢。