电贺。对我的问题,以及我已经完成的事情以及我不能做的事情进行了某种详细的解释。
我想创建一个类似于iPhone键盘的行为。基本上,我希望当用户点按一个按钮时显示一个视图,然后用户点按该按钮。
这,我完成了。
当用户放开按钮时,当他的手指在该按钮的区域上时,我想触发一个动作“做事”。
这个,我也能做到。
由于所有按钮都在附近(如在键盘中)并且我不希望用户选择除按下按钮之外的其他按钮,因此我使用 - (BOOL)缩小了按钮的命中区域pointInside:(CGPoint)指向withEvent:(UIEvent)事件函数。
当用户按下按钮,不抬起手指,并拖动按钮区域外,我想要触发另一个动作。这是第一个问题......此功能仅在用户的手指远离按钮区域时触发,而这次 pointInside 功能不是我的朋友。如何在用户手指离开边界时检测到用户手指“离开”按钮区域?
如果您没有意识到......这是问题1。
第二个问题与拖拽输入有关。同样,我需要像拖动出口一样限制区域。但我想当我解决其中一个时,另一个是相同的。问题是,为了有像键盘一样的行为,我可能需要检测用户在另一个按钮中开始触摸,从不抬起他的手指,并改为另一个按钮。我可以在同一个按钮上检测到拖动输入并在此订单中拖动退出。当用户第一次触摸除了我要检测拖动输入事件的按钮以外的任何其他位置时,我无法检测到拖动输入。基本上我需要的是检测任何按钮上的触摸(而不是视图中的任何其他位置),当用户在不抬起手指的情况下更换按钮时,我想检测被触摸的新按钮。
这个巨大的段落是问题#2。
如您所料,任何帮助都会受到高度赞赏。
最诚挚的问候。 非常感谢!
答案 0 :(得分:3)
解决。
我使用了自定义UIButton类。然后,在
(void)touchesBegan:(NSSet *)触及withEvent:(UIEvent *)事件
(void)touchesMoved:(NSSet *)触及withEvent:(UIEvent *)事件
(void)touchesEnded:(NSSet *)触及withEvent:(UIEvent *)事件
我测试是否在该自定义UIButton中发生了触摸。如果确实如此,我会采取相应的行动。