我正在尝试在我的iOS应用上实现一种“帮助模式”。当用户点击帮助按钮时,UITapGestureRecognizer会拦截触摸屏幕,如果它在控件上,则会显示一个带有帮助信息的小弹出窗口。
我的问题是,如果我点击控件的上半部分,应用程序只检测到我已经点击了控件。我使用hitTest:withEvent:来确定触摸了哪个视图:
CGPoint touchPoint = [(UITapGestureRecognizer*)sender locationInView:nil];
UIView* touchedView = [self.view hitTest:touchPoint withEvent:nil];
UILabels特别难以成功击中。
View包含顶部的导航栏,但相当标准。有没有人有类似的问题?有谁知道解决方案?
答案 0 :(得分:2)
您需要在视图中获取触摸的位置,而不是在窗口中(这是您将nil
指定为视图时获得的位置)。
CGPoint touchPoint = [(UITapGestureRecognizer*)sender locationInView:self.view];
UIView* touchedView = [self.view hitTest:touchPoint withEvent:nil];