使用Swift在iOS中未触摸/触摸时调整屏幕亮度

使用Swift在iOS中未触摸/触摸时调整屏幕亮度,ios,iphone,swift,Ios,Iphone,Swift,我对iOS和Swift非常陌生,在我解释时请容忍,如果有任何不清楚的地方,请告诉我,我会解释 我有一个iOS应用程序,它包括一些ui图像,ui按钮,等等。。当被触摸时,它们会相互作用 我希望在应用程序(屏幕上的任何位置)有一段时间没有被触摸时(比如说10秒)将屏幕调暗,然后在ui屏幕上的任何位置检测到触摸后,我希望再次增加亮度 我发现下面这行可以用来调整屏幕亮度: UIScreen.main.brightness = CGFloat(0.5) 但我不知道如何检测屏幕上任何地方的触摸(而不干扰所

我对
iOS
Swift
非常陌生,在我解释时请容忍,如果有任何不清楚的地方,请告诉我,我会解释

我有一个
iOS
应用程序,它包括一些
ui图像
ui按钮
,等等。。当被触摸时,它们会相互作用

我希望在应用程序(屏幕上的任何位置)有一段时间没有被触摸时(比如说10秒)将屏幕调暗,然后在
ui屏幕上的任何位置检测到触摸后,我希望再次增加亮度

我发现下面这行可以用来调整屏幕亮度:

UIScreen.main.brightness = CGFloat(0.5)
但我不知道如何检测屏幕上任何地方的触摸(而不干扰所有其他按钮等),也不知道如何将其与计时器相结合

(我的应用程序仅用于特定用途,不会分发,并且只在配备iOS10的iPhone 7设备上运行)

好吧,有一个专门的应用程序

func hitTest(upoint:CGPoint,带事件:UIEvent?->UIView?

返回视图层次结构(包括其自身)中包含指定点的接收器的最远子体

此方法通过调用每个子视图的point(inside:with:)方法来遍历视图层次结构,以确定哪个子视图应接收触摸事件。如果point(inside:with:)返回true,则子视图的层次结构将被类似地遍历,直到找到包含指定点的最前面的视图为止。如果视图不包含该点,则忽略其视图层次的分支。您几乎不需要自己调用此方法,但可以重写它以隐藏子视图中的触摸事件

您需要创建
UIView
UIWindow
的子类来检测触摸。
然后覆盖hitTest功能,并在其内部实现所需的逻辑

更新:
请参阅runnable以获得想法。运行应用程序并尝试按视图,在视图之外,您将在调试器控制台中看到日志,其中包含有关视图的信息。希望它能对你有所帮助。

嗯,有一个专门的方法

func hitTest(upoint:CGPoint,带事件:UIEvent?->UIView?

返回视图层次结构(包括其自身)中包含指定点的接收器的最远子体

此方法通过调用每个子视图的point(inside:with:)方法来遍历视图层次结构,以确定哪个子视图应接收触摸事件。如果point(inside:with:)返回true,则子视图的层次结构将被类似地遍历,直到找到包含指定点的最前面的视图为止。如果视图不包含该点,则忽略其视图层次的分支。您几乎不需要自己调用此方法,但可以重写它以隐藏子视图中的触摸事件

您需要创建
UIView
UIWindow
的子类来检测触摸。
然后覆盖hitTest功能,并在其内部实现所需的逻辑

更新:

请参阅runnable以获得想法。运行应用程序并尝试按视图,在视图之外,您将在调试器控制台中看到日志,其中包含有关视图的信息。希望它能对您有所帮助。

可能是您可以在UIWindow上添加UIAPTgestureRecognitizer查看可能是您可以在UIWindow上添加UIAPTgestureRecognitizer查看感谢您的回答,但我很难重新启动API您可以提供一个简单的示例(无需实现逻辑)谢谢您的回答,但是我很难重新启动API,你能提供一个简单的例子吗(不需要实现逻辑)