iOS我的UIView在屏幕上可见吗?

Bja*_*rte 4 nstimer uiview ios swift

我有一个定制UIView,用计时器显示当前时间,它设置在一个UITableViewCell.有没有办法检测用户不再查看UIView我的自定义(例如导航到其他选项卡)?当我的UIView屏幕上不再可见时,我想停止这个计时器.我正在使用Swift.

我看到有一个我可以覆盖的方法被调用didMoveToWindow,这似乎是在我更改标签时触发的,但我对iOS不太熟悉,要查找哪些方法或属性来判断视图是否实际对用户可见或者不在屏幕上

我需要某种被调用的方法,类似于viewDidAppearviewDidDisappearfor UIViewController.

提前致谢!

Bja*_*rte 11

我找到了一个适用于此目的的答案,只需覆盖didMoveToWindow并检查是否self.window为零:

override func didMoveToWindow() {
    if (self.window == nil) {
        timerStop()
    } else {
        timerStart()
    }
}
Run Code Online (Sandbox Code Playgroud)