gpt4 book ai didi

ios - 检测屏幕上任意位置的触摸

转载 作者:可可西里 更新时间:2023-11-01 05:01:56 25 4
gpt4 key购买 nike

我想知道用户何时触摸了我的应用程序屏幕上的任何位置。

我已经研究过使用 -(UIResponder *)nextResponder 但不幸的是这不会起作用,因为我也会自动重新加载一个表,所以当它发生时它会被触发。

我还尝试了一个手势识别器,代码如下。但这只会识别 View 上的触摸。我有很多按钮,用户将使用这些按钮来操作应用程序。我想避免在屏幕上的每个按钮和分段控件中为此添加手势识别器或代码

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapOnView:)];
[self.mainView addGestureRecognizer:tap];

- (void)tapOnView:(UITapGestureRecognizer *)sender
{
//do something
}

我也试过 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event ,但这与手势识别器有同样的问题。

我想知道是否有任何方法可以完成此任务。我希望我可以从 nextResponder 中识别事件的类型,然后我可以检测它是否是按钮,例如。

编辑:我正在处理这个问题的原因是我的应用程序需要保持事件状态并且屏幕无法锁定(因此我禁用了屏幕锁定)。为避免过度使用电量,我需要将屏幕调暗,然后在触摸应用程序后将亮度恢复到原始水平。我需要此功能仅出现在我的一个 View Controller 上。

最佳答案

正如 Ian MacDonald 所提到的,使用 hitTest:: 是检测应用范围内用户交互的一个很好的解决方案,包括何时选择按钮、文本字段等。

我的解决方案是子类化 UIWindow 并实现 hitTest 方法。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {

// do your stuff here

// return nil if you want to prevent interaction with UI elements
return [super hitTest:point withEvent:event];
}

关于ios - 检测屏幕上任意位置的触摸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26364799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com