如何检测UIview失去焦点或迅速获得焦点4?

时间:2019-09-05 09:01:02

标签: ios swift uiview focus

我正在滚动浏览页面,其中有一些带有YoutubeKit框架的youtube视频。

YoutubeKit正在使用UIView来显示视频。我想在UIView不在焦点(用户未显示)中暂停视频。

isfocused()正在工作,但我想获取“事件”,以在失去焦点时自动做出反应。

我了解我需要创建一个自定义UIview类以覆盖canBecomeFocused

这是我创建的自定义类的代码

import Foundation
import UIKit

class focusableUIview: UIView {
    override var canBecomeFocused: Bool {
        return true
    }
    override func didUpdateFocus(in context: UIFocusUpdateContext, withcoordinator: UIFocusAnimationCoordinator) {

    print("focus")
}
}

我还更新了故事板,以更改我要检测焦点变化的UIView的类。

我在问什么,我需要在UIviewcontroller类中做什么,我注意到canBecomeFocused从未被调用...

我有点迷茫。非常感谢您的帮助

1 个答案:

答案 0 :(得分:1)

使您的视图更具针对性

override var canBecomeFocused: Bool {
    return true
}

然后覆盖此功能以获取焦点更新

override func didUpdateFocus(in context: UIFocusUpdateContext, with coordinator: UIFocusAnimationCoordinator) {

}