我的应用程序中有一个带有 6 个键的虚拟键盘,整个过程只是一个用UIImageView
. 我确定了与每个“键”的图像相对应的确切 x 和 y 坐标,并使用以下代码来响应与键盘交互的用户:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch * touch = [[event allTouches] anyObject];
CGPoint point = [touch locationInView:touch.view];
if(point.y < 333 && point.y > 166 && point.x < 72 && point.x > 65)
{
NSLog(@"Key pressed");
}
//Repeat per key...
}
但是,我意识到这种方法不是很聪明,因为改变手机视角(纵向到横向)或改变设备会破坏我的 x 和 y 坐标,从而导致问题。
因此,我正在寻找一种替代方法来指定绝对 x 和 y 值,并通常使用 touchesMoved。理想情况下,这将是一个具有特定设置的按钮,如果它被点击,或者如果用户将手指拖入按钮区域(即使非常缓慢 - 我之前使用过滑动检测,它需要太多夸张的动作)。
是否可以设置一个按钮来调用它的方法,如果被点击或者如果触摸事件在按钮之外开始然后进入按钮?如果没有,我的替代方案是什么?
谢谢 SE!