问题标签 [touchesbegan]

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 投票
2 回答
2387 浏览

iphone - 同级子视图在 iPhone 中不接收触摸

我有一个带有两个子视图的视图 ( ),一个在另一个 ( ) 的parent顶部 ( )。topChildbottomChild

如果我只点击屏幕topChildparent接收触摸事件。

我应该改变什么来传播触摸事件bottomChild

编码:

仅记录MYView的子类在哪里。UIViewtouchesBegan

结果:

在此处输入图像描述

触摸绿色区域会产生以下日志:

我的第一个想法是将所有呼叫parent传播给它的孩子,但是(A)我怀疑可能有一个更简单的解决方案,并且(B)我不知道哪个孩子将事件发送给父母,并且两次向同一个视图发送消息可能会引起恶作剧。touchesSomethingtouchesSomething

在提出问题后,我发现这篇文章建议覆盖hitTest以更改接收触摸的视图。如果可行,我将尝试这种方法并更新问题。

0 投票
1 回答
441 浏览

xcode - 在 touchesBegan 方法中复制 UIEvent 对象

我正在尝试将 touchesBegan 方法接收到的 UIEvent 对象传递给必须从该事件中提取触摸以执行操作的其他对象。

问题是当第一响应者在第一次调用 touchesBegan 时收到事件并使用对象事件作为参数调用辅助对象的 touchesBegan 时,当辅助对象尝试从该事件中提取 UITouches 时,没有返回任何内容,因为 UIEvent 是空的。

我试图“复制”该事件以保存原始事件并使用它,但没有成功。

有没有办法将 UIEvent 对象的克隆创建为独立对象?

谢谢。

0 投票
2 回答
5504 浏览

uitableview - 如何找到在 iphone 中触摸或捏住 tableView 单元格的时间?

我有一个 tableView 已完成填充视图。当我点击单元格 tableView:didSelectRowAtIndexPath: 被触发时,但是当我编写 touchesBegan:withEvent 来查找 tableView 的触摸和 Pinch 事件时,它没有被触发。Tableview 在视图上方是不触发的原因,如果是,如何找到 tableView 或其某个单元格何时被触摸或捏合。


我找到了一种在表格视图单元格中找到捏或触摸的方法,首先在 tableView:didSelectRowAtIndexPath: 中声明 UIPinchGestureRecognizer 对象:即

然后在下面写选择器方法...

当我设置断点时,它正在执行,但该方法被调用了 3 次。如果有人找到解决方案,请分享...

提前致谢...

0 投票
5 回答
26343 浏览

iphone - 在 iPhone 的 UITableViewController 类中未调用 touchesBegan 方法

如何touchesBegan: withEvent:在 UITableViewController 类中使用方法?

UITableViewController 是 UIViewController 类的子类。那么为什么该方法在 UITableViewController 中不起作用呢?

0 投票
1 回答
3528 浏览

iphone - UIImageView 像素完美的“开始触摸”,用于 UIImage 的非透明部分

开发 iphone 应用程序,我使用了 UIImageview 并且设置了不规则形状的图像

我使用 touchesbegan 进行接触

一切都很好,但问题是我还在 imageview 的 CGRectMake(即 0,0,320,32.5)占据的所有矩形区域中获得事件,而我只需要图像上的事件(形状为 ----- |||||-----)。

我如何确保仅在图像上而不是在 cgrectmake 覆盖的其余区域上获得事件?

0 投票
1 回答
866 浏览

ios - iOS Touches Began 后续触摸仅在第一次触摸移动时到达

我正在为钢琴应用程序覆盖 UIView 中的触摸方法。

如果我用一根手指触摸 iPhone 或 iPad,我会得到 - 正如预期的那样 - touchesBegan callabck。如果我用第二根手指触摸,我会在 touchesMoved 回调中得到该事件。这一切都很好,但是只有当我用第二个手指触摸时第一根手指移动时,我才会收到第二个(和第三个等)回调。

对于钢琴应用程序来说,这是一个问题,因为我需要能够非常快速地触摸。

有人知道这个解决方法吗?除了使用 touchesBegan/Moved/Ended 方法之外,还有其他选择吗?

0 投票
1 回答
1238 浏览

ios - IOS:停止执行方法

我有这个代码:

每次我触摸屏幕时,它都会调用“openImages”方法;

然后你可以看到“openImage”是一个很重的方法,因为有一个双循环,我打开了一些 uiimage(但这不是问题)。我的问题是:每次触摸屏时我可以做些什么来停止 openImages,然后再调用一次(因为如果我经常触摸屏应用程序崩溃)。你能帮助我吗?

0 投票
3 回答
701 浏览

ipad - iPad Landscape 开始搞砸了

我的应用程序只允许在横向方向,并且它以横向启动。因此,当 iPad 为横向时,左上角为 (0,0),所以一切正常。

但是,当我拿起“touchesBegan”时......它无法正常工作。只有当我像 iPad 右侧的三分之二那样轻按时,它才会触动。我知道它与方向有关,因为该应用程序实际上只是带有单个 UIView 的空白屏幕,没有别的。这很简单。没有其他可能的问题会导致这种情况。

具体来说,如果我在 touchesBegan 函数中打印出 x 位置,并且如果 iPad 用左侧的主页按钮按住,则宽度为 1024。而 1024-768 为 256。这正是它所在的 x 位置开始感觉到我的触摸。x=256 左边的任何东西都感觉不到触摸。

我该如何解决?

0 投票
1 回答
255 浏览

ipad - iPad 应用程序 - touchesBegan 双击不正确

我有一个 UIViewController 具有 touchesBegan 功能并输出位置。

如果我在屏幕中间快速双击,我会得到以下输出

为什么第二个水龙头被注册为(39,22)......就像iPad的左上角。但是,我在中间敲击。

所以,我想通过两种方式解决这个问题:

0 投票
1 回答
430 浏览

objective-c - 释放 UIView 对象后不调用 touchesBegan

我正在使用 touchesBegan 方法实现 UIView。

当我在添加子视图集合后创建此 UIView 而不释放时,一切正常。

但是,当我是一个好公民并在添加子视图后释放对象时,不会调用 touches 开始。

这是我的代码:

插入 UIViewController。OTTestResult 是 UIView 的 Controller:

并在 OTTestResult 对象中实现 touchesBegan:

有人知道我在做什么错吗?

谢谢。