问题标签 [touchesmoved]
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.
objective-c - 很多 if 语句,需要帮助进行某种循环
我需要一种更快的方法来写这个。
我有 4 个数组,每个数组包含 4 个精灵。
我有 16 个点和 16 个精灵。每个精灵都有一个随机点,所以我必须检查每个精灵是否等于该点,并且每个精灵只有一个点。然后将其添加到数组中。我从索引 0 处的对象的数组中调用该对象,因为我确定索引 0 处的对象是一个精灵,它等于 point1,即 (33,33)。sprite 将在 cctouchmoved 中调用,因此我可以在该点移动 sprite,但数组是这样我可以移动一列 sprite,因为我知道它们都在正确的位置。现在我的问题是输入所有这些很长我必须做一个循环或其他东西。
ios4 - 如何区分 touchesBegan 和 touchesMoved
如何在用户捏住对象时忽略 touchesBegan 方法,并在用户点击屏幕时忽略 touchesMoved 方法?我创建了图片放大/缩小效果,我希望能够在用户点击屏幕一次时隐藏导航栏。现在,当用户开始捏合时,导航栏会在用户触摸一次后显示。
最好的方法是什么?
uiview - 将滑动触摸从 UIView 传递到底层 UIScrollView 以进行正确滚动
我的情况类似于这两个帖子(1907297和689684),为了最简洁地描述我的情况,我展示了这个文本/图形布局(类似于你在 IB 中看到的,用于强制缩进级别的点)
UIView(主视图:320x460)
。.UIScrollView(滚动视图:320x460)
。.UIView (OverlayView: 320x40)
。. . .UIButton (ArbitraryButton1)
。. . .UILabel (ArbitraryLabel1)
。. . .UILabel (ArbitraryLabel2)
这里的目标是让 OverlayView 作为一个统一的、透明的容器来定位和显示一些任意的按钮/标签在 ScrollView 的顶部。这些按钮/标签应保持静止,而下方 ScrollView 中的内容会随着用户滑动而移动。按钮/标签有时可能会同时隐藏/取消隐藏/缩放(带有动画),这使得将它们全部分组在单个 OverlayView 中很方便。
问题在于,虽然在 OverlayView 上的点击似乎可以很好地直接传递到底层的 ScrollView,但滑动动作没有任何效果。我可以通过覆盖来检测/拦截滑动
OverlayView 中的方法,但是我还没有找到一种方法以使其滚动的方式正确地将它们传递给 ScrollView。显然 touchesMoved 方法不是 UIScrollView 用来检测/解释滑动的方法吗?
我研究过的所有其他类似帖子要么找到了一个在我的情况下不起作用的不同解决方案,要么只是没有解决。我还看到提到使用 touchesShouldBegin / touchesShouldCancel 虽然我不知道如何实现。无论如何,仍然希望社区有一些见解可以让我为此提出一个优雅的解决方案 - 任何示例代码都会很棒。
在此先感谢,乔尔。
PS - 我还应该提到我需要使它与 iOS 3.0 兼容,所以我认为尝试使用 UIGestureRecognizers 已经过时了。
iphone - 使用 touchesmoved 时,Touchesbegan 总是触发?
我是 iPhone 编程的新手。我正在尝试用一只猫做两个声音做一个简单的窗口。当您单击猫图标时,它应该执行“miaau”,而当您拖动窗口(笔划)时,它应该执行“mrrrr”。它有效,但总是当我尝试让 cat mrrrrr 函数 TouchesBegan 触发并且 cat 也执行“miaaau”时。
怎么做才能让界面识别我只想要抚摸猫,而不是触摸它来执行第一个选项“miaau”?
iphone - 在 UIScrollView 中滚动而不触发 touchesCancelled
概述
我正在开发一款 iPhone 游戏,其代码是从另一位开发人员那里继承而来的。游戏网格是一个 UIScrollView,其 contentSize 为 1000x1000。网格包含通过 OpenGL 的 Texture2D 类在屏幕上绘制的多个元素。
UIScrollView 的滚动方向与您手指移动的方向相反。这背后的想法是模拟用手指“筛选”元素的行为,因为触摸路径中的每个元素都应该受到影响/操纵。
问题
问题是 UIScrollView 的滚动触发了 touchesCancelled,从而结束了游戏依赖的 touchesMoved 调用来知道要操作哪些元素。即使我的手指移动不会在视觉上触发视图滚动,将手指移动超过 10 个像素的距离也会触发 touchesCancelled 方法,从而结束未来的 touchesMoved 调用,直到我抬起手指并开始新的触摸事件。
我相信触发 touchesCancelled 方法的是滚动事件,因为如果我self.scrollingEnabled = NO;
在视图上设置,在屏幕上移动手指会继续触发 touchesMoved,因为无论我在屏幕上移动多远,touchesEnded 都会触发当我抬起手指时按预期调用(在我完成元素筛选之后),并且我的触摸/滑动路径中的每个元素确实是根据需要进行操作的。但是,设置此属性自然会阻止游戏网格的所需滚动。
尝试修复失败
我已经尝试self.canCancelContentTouches = NO;
在视图的initWithFrame
方法中设置,但touchesCancelled
仍然被触发,很奇怪。不知道为什么会这样!也许我把它放在了错误的位置,但我不太确定这是否能解决我的问题,因为文档暗示这样的设置无论如何都会阻止滚动:“如果这个属性的值是 NO,一旦内容视图开始跟踪,无论手指移动如何,滚动视图都不会滚动。” 显然这不是我所追求的行为,因此该属性似乎并不是我感兴趣的东西。虽然我仍然对为什么它仍然滚动和调用感到困惑touchesCancelled
,但我离题了。
我还添加了该方法- (BOOL)touchesShouldCancelInContentView:(UIView *)view
,但它没有被调用,即使没有像文档所说的那样将 canCancelTouches 属性设置self.canCancelContentTouches = NO;
为 NO 确实会阻止调用 touchesShouldCancelInContentView 方法:“如果值为canCancelContentTouches 属性为 NO。” . 尽管文档似乎不清楚从该方法返回 NO 是否也会阻止像canCancelContentTouches = NO;
设置会。如果不是,那么这将是理想的解决方案。尽管如此,我还是不知道为什么这个方法甚至没有被调用,因为文档只提到了一个阻止它被调用的属性/设置,即使该属性没有设置为 NO,它仍然没有被调用(因此默认为 YES)。
我从这里去哪里?
所以现在我很茫然。事实上,在视图开始滚动后,我仍然需要 touchesMoved 才能继续被调用。这有可能吗?如果没有,我在这里有什么选择?
ios - 如何跟踪 NSTouch?
我正在开发一款游戏,这是我第一次需要不止一次触摸才能工作。我注意到在 NSSet 中对触摸进行索引似乎没有押韵或理由。它甚至可以在两个触摸都处于活动状态时翻转。谁能解释一下?谁能解释我如何跟踪每次触摸及其动作(因为在索引处请求触摸可能不会返回您认为存在的那个)?
ios - scrollView 中 scrollView 的水平滚动 - 小问题
我有一个适合整个屏幕的滚动视图。在那个视图中,我显示了一些水平滚动的 UIImages。就像 Apple 的 PageControl 项目一样。然后,当用户点击屏幕时,我会在底部的滚动视图中淡入其他一些图像。也可以水平滚动。就像 Apple 的 ScrollView 项目一样。
我的问题是,当我来到淡入的滚动视图的末尾时,上滚动视图也开始拖动。在激活第二个滚动视图期间如何停止它?
iphone - 在子类 UIImageView 中,touchesBegan 触发,touchesMoved 触发了几次,然后无缘无故停止
我对 UIImageView 进行了子类化,并像这样实现了 touchesBegan/Moved/Finished:
它似乎对第一个点起作用。TouchesBegan() 每次都会触发,然后当我开始移动时, touchesMoved() 有时会触发 5 次,有时会触发 3 次,有时会触发 7 次,然后它就停止了。touchesEnded() 从未被解雇,我只是不明白发生了什么!
我已经盯着这个有一段时间了,有没有人看到我缺少的东西?
ios - 如何支持跨各种对象的触摸移动?
我的应用程序中有一些这样的标签......
我需要做的是,当点击标签时,我只是在屏幕底部显示标签名称。分别单击每个单元格时效果很好。但即使用户单击特定标签并将手指移到另一个标签上,我也想显示更改。也就是说,一旦他按下屏幕,无论他的手指移动到哪里,我都想追踪那些地方并想显示变化。我怎样才能做到这一点?请简要说明。
提前致谢
iphone - touchesMoved 未注册位置
Touchesmoved 没有找到我的光标位置。
我有这个代码:
因此,它被告知拖动的 UIView 确实移动到了正确的位置,但在 NSLog 上,它每次都返回 0,用于 touchPoint。任何想法为什么?
编辑:将其更改为 %f 有效,但它是一个完整的数字,最后有 0.000000 的大轨迹,所以不确定为什么它不能与 %i 一起使用。