假设我有两个 View Controller :xVC 和 yVC。我使用了 shake API,并使用了方法 -(void)motionBegan
、-(void)motionEnded:
和 -(void)motionCancelled
> 在 xVC 中。发生的情况是,当设备摇晃时,它会发出一个简单的动画。现在的问题是,即使我打开 yVC,即当 yVS.view 已添加为 subview 时,该动画也会被触发。我正在寻找的是一些可以在 -(void)motionEnded:
中使用的 if 条件,如下所示:
if(yVC == nil)
{
//trigger animation
}
我的意思是,当 yVC 可见时,抖动不应该起作用。我怎么做?请帮忙。
最佳答案
我见过和使用的一般建议是询问 View 是否具有非零 window
属性:
if( ! yVC.view.window) {
// trigger animation
}
但请注意,这并不总是等同于可见;尽管在大多数应用程序中,它已经达到了您能获得的最佳性能(不准确的基本情况是不同的 View 完全遮盖了它,但这仍然可以满足您的需求)
关于objective-c - 我如何知道 View 是否可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11498115/