草庐IT

iphone - HitTest :withEvent: Not Working

我正在制作一个应用程序,其中有一个背景View,并且有六个UIImageView作为subview。我有一个UITapGestureRecognizer来查看何时点击其中一个UIImageView并且下面的handleTap方法是手势识别器调用的方法。但是,当我运行它时,hitTest:withEvent:总是返回背景View,即使我点击其中一个imageViews也是如此。和调用hitTest的事件有关系吗?谢谢-(void)handleTap:(UITapGestureRecognizer*)sender{if(sender.state==UIGestureRecognizerSt

ios - 点击 UIKeyboard 时触发 hitTest

我正在尝试修复一个涉及UIViewhitTest:withEvent:在UIKeyboard上进行触摸时在我的View上调用的错误,但只有在应用程序进入后台之后。它发生在我的具有复杂View层次结构的应用程序中,因此我在只有2个View的应用程序中重现了它:1个UIView768x1024(全屏)1个UITextView200x200在全屏View的上半部分行为如下:点击TextView会触发全屏View的hitTest方法,文本字段成为第一响应者,然后键盘会按预期出现。轻敲键盘按键效果很好。现在关闭键盘。将应用程序发送到后台。然后恢复应用程序。再次使TextView成为第一响应者。这

ios - 在 CALayer 上使用 hitTest - 你如何找到哪个层被击中 (Swift)?

如何找到被击中的实际层?目前我有很多CAShapeLayers,我希望每个人在被点击时都做一些事情。但是,当它们中的任何一个被点击时,它们都会发生一个Action。到目前为止,这是我的代码:ifshape.hitTest(point)!=nil{shape.lineWidth=60}ifshape1.hitTest(point)!=nil{shape1.lineWidth=60}ifshape2.hitTest(point)!=nil{shape2.lineWidth=60}这可能意味着它只是检查点击的点是否是CAShapeLayer。你如何让它检查点击的点是否是特定的CAShapeL

swift - hitTest(_ :options:) don't recognize nodes behind ARKit planes

我将一个物体放在墙上,然后尝试识别点击它,但HitTest返回0个物体。当我改变物体的Z位置并将其放置在靠近凸轮的位置时,它可以很好地识别,但这不是解决方案,因为平面总是在变化并且它可以随时覆盖物体。如何使hitTest正常工作并识别平面后面的节点?或者,也许,我使用了错误的方法?fileprivatefuncaddNode(atPointpoint:CGPoint){lethits=sceneView.hitTest(point,types:.existingPlaneUsingExtent)ifhits.count>0,letfirstHit=hits.first,letorigi

ios - Swift:无法检测 SCNNode 上的 HitTest ?查看vector3是否包含在节点中?

我试图检测在我的AR场景中实例化的SCNNode上的点击。它似乎不像这里的SceneKitHitTest结果那样工作,而且我对场景工具包没有太多经验。我只想检测点击点是否包含在场景中的任何节点内,从而检测物体上的点击。我从其他答案中尝试过的内容:overridefunctouchesBegan(_touches:Set,withevent:UIEvent?){guardlettouch=touches.firstelse{return}letresults=sceneView.hitTest(touch.location(in:sceneView),types:[ARHitTestRe

ios - Swift:在另一个 UIView 下对 UIView 进行 hitTest

我在RedOrGreenUIView之上有TransparentUIView。TransparentUIView有一个UILongPressGestureRecognizer附加到它。一旦用户开始长按它,我检查这个LongPressGesture的.Changed状态,并执行下面的hitTest:varp:CGPoint=rec.locationInView(self.view)varselectedView=view.hitTest(p,withEvent:nil)ifselectedView!=nil{ifselectedView==TransparentUIView{printl

ios - Spritekit 和 Scenekit 的 HitTest

我有一个看起来很基本的ViewController和一个SCNView,它有一个overlaySKScene。我遇到的问题是我不希望在底层self.scene(gameScene在下面的示例)如果它首先在叠加场景的SpriteKit节点中检测到。对于以下内容,即使点击发生在SKOverlay场景节点actionButtonNode上,两个场景都报告发生了点击。ViewControllerimportUIKitimportSceneKitclassViewController:UIViewController{overridefuncviewDidLoad(){super.viewDid

javascript - SVG 文本 HitTest

我正在尝试使用客户端JavaScript对SVG文本元素实现碰撞检测。HitTest应该检查文本的任何字形是否与另一个文本元素的任何字形重叠。由于getBBox和getExtentOfChar不够准确,我需要一个自定义解决方案。我的第一种方法是获取元素的每个坐标/像素的颜色并手动进行HitTest,但这不起作用,因为无法获取坐标的颜色。它需要一个额外的Canvas来获得像素颜色->糟糕的解决方法。现在我正在考虑将文本或字形转换为多边形以进行HitTest。可能吗?或者有人有其他基于字形的HitTest方法吗?最好的问候 最佳答案 您

HTML5 Canvas HitTest

我在HTML5Canvas上绘制了一些图像,我想检查它们是否在鼠标点击时被击中。看起来很简单,我有图像的边界,但是图像被转换(平移和缩放)。不幸的是,上下文没有获取当前变换矩阵的方法,而且也没有用于矩阵乘法的API。似乎唯一的解决方案是自己跟踪变换并实现矩阵乘法。欢迎提出建议。 最佳答案 这也是3D(OpenGL)图形世界中的一个常见问题。解决方案是创建一个辅助Canvas对象(未显示),然后将图像重新绘制到其中。绘图与主Canvas绘图完全相同,只是每个元素都使用独特的颜色绘制。然后,您查找与您的鼠标选择对应的像素,并读取其颜色,

iphone - hitTest:WithEvent 和 subview

我有2个View,但我想让1个View(实际上)变大。如果我将我的tapGesture放在v1上,则点击手势可以使用更大的点击区域但是,如果我将我的tapGesture放在v2上,它就不起作用(实际上它根本无法识别tapGesture,甚至不在原始边界内),即使我循环通过我的TestView1hittest方法并且这些点包含在框架中。#import"ViewController.h"@interfaceTestView1:UIView@end@implementationTestView1-(UIView*)hitTest:(CGPoint)pointwithEvent:(UIEven