- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 UIView,其中包含许多 CALayer 子类。我使用以下代码来检测触摸事件对应于哪一层:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:self];
NSLog(@"%@,%@",NSStringFromCGPoint(point),[self.layer hitTest:point].name);
}
在设备旋转之前,此功能可以正常工作。当设备旋转时,所有当前图层都会从 super 图层中删除,并创建新的 CALayers 以适应新的方向。新图层已正确插入并可以在正确的方向查看。
旋转后,hitTest 方法始终为图层返回 null。我注意到,当旋转 180 度时,返回的图层是旋转之前所在位置的图层,即,触摸左上图层会在旋转 180 度时给出右下图层。 HitTest 的坐标按预期打印,(0,0) 位于左上角。我每次旋转都会重新绘制图层,但由于某种原因,它们似乎被映射为“正确”的向上方向,主页按钮位于底部。在处理旋转后我是否错过了函数调用或其他内容?
干杯,亚当
最佳答案
好的,我发现以下代码可以在所有方向上运行,没有任何问题(就我而言,没有重叠 View ,因此这适合我):
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *t = [touches anyObject];
CGPoint point = [t locationInView:self];
for(CALayer *layer in self.layer.sublayers) {
CGPoint convertedPoint = [self.layer convertPoint:point
toLayer:layer];
if([layer containsPoint:convertedPointPoint]) {
NSLog(@"%@",layer.name);
}
}
}
虽然此手动点转换工作正常,但问题仍然在于为什么原始方法调用不能正常工作。有人可以启发我吗?
亚当
关于iPhone hitTest 旋转后损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2575689/
我有一个包含任意数量锯齿状元素的 WrapPanel。我想为我的项目实现拖动选择。 如何对一个点进行 HitTest 似乎很明显,但我如何才能找到矩形区域内的所有项目? 最佳答案 您可以使用 Visu
我有以下用户控件:一个点及其名称: 这很酷。 现在,我有一个面板,我需要恢复我用鼠标击中的停止点: public partial class
我有一个 UIView,其中包含许多 CALayer 子类。我使用以下代码来检测触摸事件对应于哪一层: - (void)touchesBegan:(NSSet *)touches withEvent:
我有一个透明的 NSView,它画了一个圆圈。我想自定义显示上下文菜单时使用的 HitTest 。 目前它使用边界矩形。我想更改它以测试圆圈内的点击。 最佳答案 尝试覆盖 NSView menuFor
我有一个包含驻留在 Viewport3D 中的 3D 对象的应用程序,我希望用户能够通过在屏幕上拖动一个矩形来选择它们。 我尝试在 Viewport3D 上应用 GeometryHitTestPara
在 RenderTransform 属性中具有较大缩放因子的 Path 元素上,输入命中测试会产生不正确的结果。 以下 XAML 定义了一个带有实心圆和Hand 光标的 Path。
我试图扩展 java ScrollDemo2 来报告 Canvas 上的形状是否被单击。我从一个简单的矩形开始,相信简单地循环 Canvas 中的矩形检查点击点是否包含在其中应该没有问题。但随后发生了
有没有办法在wpf中 HitTest 字符的像素?我希望能够命中字符“i”的点,但是当我单击点和“i”行之间的空格时不会命中。我尝试使用 DrawingContext.DrawText 方法来完成此操
我是 silverlight 的新手,正在尝试阅读使用 HitTest 方法了解鼠标何时位于控件上的 silverlight 教程。但不幸的是,我看不到任何具有此名称的方法。 HitTest 方法在哪
我正在使用 Graphics.DrawString 写出一个字符串,并且需要在给定鼠标位置的字符串中获取字符索引。 这看起来应该很简单,但我真的很难找到一种可行的方法。 我发现 e.Graphics.
我正在使用这种方法来检测是否有人点击了叠加层。现在一切正常,除了点击区域太小。所以我查看了 api,它说“查看给定的命中点是否在项目标记的范围内。”。 我像这样把边界变大了: Log.d("debug
我有一个位图图像,我正在尝试对其进行 HitTest 。如果它只是一个普通位图,则 HitTest 有效。但是我需要旋转和缩放位图,但我似乎无法正确计算出 HitTest 。 这里的x和y是光标x和y
这有点难以解释,所以我举个例子。 mysql表书籍 书籍 firstname |lastname |state |favbook john |doe | WA |bookna
UIViews是否针对UIGestureRecognizers 进行了 HitTest in the same way因为它们用于触摸事件?特别是,是否使用了相同的 hitTest:withEvent
我试图显示过去两天最流行的项目,但这个 View 让两天前发生的项目出现了。 它是为了找到最近两天最流行的(可能是 20-30 个项目)并用随机项目填充剩余的( View 上始终需要 1000 个项目
继上一个问题之后,我试图找出下一个问题是否可行: 假设您有一个渲染图,例如具有透明背景的足球运动员。您将此呈现器添加到您的 html 和 css 中。透明部分现在是图像“盒子”的一部分;你不能点击图片
我自定义了一个列表框来显示饼图(每个列表项都是饼图的一部分)。为此,我使用了一个 Itemtemplate,它(目前)仅包含一个 Shape。为了使这些形状形成一个完整的圆,我计算了每 block 的
我的程序中有一个简单的矩形,我必须对其进行 HitTest 。我正在使用 openFrameworks,但我认为这里的问题也与 OpenGL 主题有关。 public class Shape : pu
在处理草图中实现选择算法时,我循环遍历场景中的每个对象,并检查它是否在鼠标点击位置的几个像素范围内。有很多对象,而且它们非常小。 正如您可以想象的那样,一旦场景中充满了物体,这就会变得非常麻烦。有没有
我想设计一个 PvP 游戏,在客户端和 java 套接字服务器中使用 flash,但我确实需要服务器验证弹道以及子弹是否从作弊中击中目标。 是否有任何教程或论文提供了如何做到这一点? 最佳答案 要做到
我是一名优秀的程序员,十分优秀!