gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:21:52 25 4
gpt4 key购买 nike

我是 iOSSwift 的新手,请耐心等待我解释,如果有任何不清楚的地方,请告诉我,我会解释。

我有一个 iOS 应用程序,它包含一些 UIImagesUIButtons 等。触摸时它们会交互。

我想在一段时间(比如 10 秒)未触摸应用程序(屏幕上的任何位置)时调暗屏幕,然后在 UIScreen< 上的任何位置检测到触摸时立即调暗屏幕 我想再次增加亮度。

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

UIScreen.main.brightness = CGFloat(0.5)

但我不知道如何检测屏幕上任何地方的触摸(不干扰所有其他按钮等...),也不知道如何将其与计时器结合使用。

(我的应用仅用于特定目的,不会分发,并且只能在装有 iOS10 的 iPhone 7 设备上运行)

最佳答案

嗯,有一个 API为此目的。

func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView?

Returns the farthest descendant of the receiver in the view hierarchy (including itself) that contains a specified point.

This method traverses the view hierarchy by calling the point(inside:with:) method of each subview to determine which subview should receive a touch event. If point(inside:with:) returns true, then the subview’s hierarchy is similarly traversed until the frontmost view containing the specified point is found. If a view does not contain the point, its branch of the view hierarchy is ignored. You rarely need to call this method yourself, but you might override it to hide touch events from subviews.

您需要创建要检测触摸的 UIViewUIWindow 的子类。
然后覆盖 hitTest 函数并在其中实现所需的逻辑。

更新:
查看可运行 Xcode 8 project得到一个想法。运行应用程序并尝试按下 View 和它们之外的 View ,您将在调试器控制台中看到日志,其中包含有关触摸 View 的信息。希望对您有所帮助。

关于ios - 使用 Swift 在 iOS 中未触摸/触摸时调整屏幕亮度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41061751/

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