问题标签 [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 投票
3 回答
283 浏览

objective-c - touchesEnded 与 UIImageView 数组

我有一个带有 UIImageView 的数组。假设当前数组中有 5 个 UIImageView。我怎么知道我当前正在触摸哪个 UIImageView?

谢谢。

0 投票
2 回答
1582 浏览

ios - UIScrollView 子类永远不会收到用于滑动的 touchesBegan 消息

我正在尝试使滚动视图只能在某个区域上滚动。为此,我将 UIScrollView 子类化并覆盖 touchesBegan(类似于这个问题)。

这是我的(非常简单的)代码。

。H

.m

touchesBegan 只被调用 UIScrollView 通常不消耗的触摸(如点击)。知道如何拦截所有的触摸吗?

我想我在某处遗漏了一个概念。

0 投票
1 回答
1774 浏览

ios - 点击 UIButton 时手指的 iOS x 坐标

我有一个 UIButton。当用户点击所述按钮时,如何获得手指的 x 坐标。我认为这将涉及 touchesBegan 但如果按钮上发生“touchesBegan”,我如何才能获得价值?如果有办法(不只是监视按钮的 x、y、宽度和高度并检查我的触摸是否在该区域),我是否需要禁用按钮的用户交互,以便代码可以处理它而不是内置xib的东西。谢谢!

0 投票
2 回答
945 浏览

iphone - touchesMoved 在没有 touchesBegan 的情况下调用

我在一个容器中有许多自定义 UIView,我在用户移动它们后对其进行动画处理。为了跟踪他们的运动,我使用 获取当前位置touchesBegan:,并使用 更新位置touchesMoved:

有时,特别是如果我最近移动了一个视图(并且它可能仍在动画回其原始位置),如果我开始拖动另一个视图,touchesBegan:则不会调用选择器,但touchesMoved:会调用touchesEnded:。如果不先在视图上调用,touchesMoved:如何调用?touchesEnded:touchesBegan:

0 投票
1 回答
714 浏览

iphone - TouchesBegan 覆盖 touchUpInside 动作

我已经实现了一个自定义 UIButton,为了让我处理 LongPress 事件(不使用手势识别器),我必须在课堂上使用touchesBegan:, 。touchesEnded:问题是现在常规按钮事件不起作用。我想知道是什么导致了这种情况以及如何避免它?

基于触摸的事件正在工作,但我之前的操作touchUpInside:不再起作用。

谢谢

0 投票
1 回答
262 浏览

objective-c - 为什么 tochesBegan 在 UITableView 中不起作用?

我正面临点击表格视图的问题我的代码不起作用....

为什么 tochesBegan 在 UITableView 中不起作用?

我使用表格标题作为我需要识别标题中的点击的自定义视图...

我如何识别表格视图标题中的点击?

我引用了 developer.apple网站显示的那样......

提前致谢....

间谍网

0 投票
2 回答
756 浏览

ios - iOS:在发生触摸时转移 UIView 的所有权?

我收到的那一刻touchesBegan,我想要removeFromSuperview被触摸的视图和addSuperview新的父视图,然后继续接收触摸。但是我发现有时这不起作用。具体来说,touchesMoved永远touchesEnded不会被调用。

有没有使这项工作正常工作的技巧?这是为了实现拖放行为,其中视图最初位于滚动视图内。

谢谢。

0 投票
0 回答
3350 浏览

objective-c - touchesBegan 未在 UIView 子类中调用

我正在尝试模仿 GLPaint 应用程序,并且我有一个TDPaintingView方法也适用-(void)touchesBegan...touchesMovedtouchesEndedtouchesCanceled. 但是,我没有看到它们中的任何一个着火。

我有一个TDAppDelegate连接到WindowIB 和TDPaintingViewIB 的。我的initWithCoder方法TDPaintingView肯定会触发,所以我知道它正在初始化。此外,我可以从TDPaintingView从上下文中记录对象中applicationDidFinishLaunching看到它肯定存在。当我在 IB 中以微不足道的方式更改视图(例如使 bg 变为红色)时,它会反映在模拟器上。

但是,我的视图没有收到触摸,这让我发疯了!

我设置了一个断点-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event,它永远不会停止,无论我在屏幕上触摸什么位置。

MyTDPaintingView没有子视图,它明确定义了这些触摸动作的方法。

我哪里错了?

0 投票
1 回答
1429 浏览

objective-c - 将 [touches anyObject] 更改为与数组中的任何对象进行接触

所以我有一个可变数组,其中包含几个 UIViews 圆圈。现在我已经开始像这样设置方法了。

这很好用。但它给出了重叠视图的问题。我希望其他 UIviews 也响应 touchesbegan 方法(然后会触发其他方法)。但如果 2 个对象重叠,那么我的 touchesbegan 会触发错误的方法。

所以我想定义多个只响应某些对象而不是anyObject的UITouch。我将如何将 UITouch 定义为使用可变数组中的对象?

0 投票
2 回答
269 浏览

objective-c - 多点触控导致方法触发两次

我正在开发一款将 ipad 屏幕分为下半部分和上半部分的小游戏。每个玩家都有自己的部分可以玩(一个手指游戏)。我必须在视图上启用多点触控,因为当两个玩家同时点击屏幕时,只有一个玩家的方法会被执行或根本不执行。

然而,当 2 个玩家执行完全相同的动作时,这会导致方法触发两次的奇怪行为。这就是它现在的工作方式:它检查玩家是否触摸了视图中的对象。如果有,就会触发一个方法。如果玩家没有触摸对象而是视图本身,则会触发另一个方法。它检查视图是否在上半部分或下半部分被触摸,以区分玩家一或玩家二的触摸。

我一直在考虑一个解决方案,但我不确定什么是解决这个问题的好方法。也许我应该为每个玩家分开视图(透明),以便我可以更轻松地区分触摸?这是我的 touchesBegan 方法。

这是一个小示意图。这一切都有效,除非两个玩家做同样的事情。它为每个玩家触发两次相同的动作。

示意图