有人可以帮帮我吗??
让我们从主要信息开始:我创建了一个具有2个视图的应用程序,其中一个名为InfoView。此InfoView位于屏幕外,带有以下代码:
(代码隐藏视图)
UIView.animateWithDuration(1.0, delay: 0.3, options: [ ], animations: {self.InfoView.center.x -= self.view.bounds.width + 150}, completion: nil)
应用启动时会自动移动。我将代码隐藏视图放在ViewDidAppear上。
当按下信息按钮时,InfoView从左到右移动到其原始坐标(当我将其放置在故事板上时,x = 12和y = 20,并且Views的大小取决于屏幕的大小)。我使用以下代码将其恢复。
(代码显示视图)
UIView.animateWithDuration(1.0, delay: 0.0, options: [ ], animations: {self.InfoView.center.x += self.view.bounds.width + 150}, completion: nil)
InfoView有一个按钮,当按下该按钮时,它将再次隐藏视图(“代码隐藏视图”),使其不在屏幕上。
我的问题是,如果Iphone收到呼叫(电话或短信等),当我试用该应用程序时,呼叫结束后它将在屏幕上显示InfoView,而无需按Show View Code即可运行。
Ive然后使用以下方法隐藏了视图:
InfoView.Hidden = True
当我运行Show View代码时,它更改为false,而当它隐藏时,其更改为true,依此类推。但是现在当我接到一个电话并且通话结束后,一个人看不到InfoView(很好),尽管如果我按show Info按钮,则InfoView会突然出现在屏幕上,并移出屏幕右侧,无法访问(屏幕外)。
我的问题是有一种方法可以比较InfoView坐标,以便如果它在屏幕上(并且我没有调用它,请运行show View),可以将其发送回屏幕。像if语句一样。例如:
if InfoView == CGPoint(12,20).... //(Then Run Hide View)
(我知道if语句是错误的)而且我确实知道我必须在applicationWillResignActive的应用程序委托中运行该函子。
请有人帮助我,我走上正轨还是有人可以给我其他解决方案。 (告诉我,如果我需要更好地解释)
最佳答案
您应该通过以下方式进行比较。不要与硬编码点进行比较。
if(InfoView.center.x > self.view.bounds.width)
{
//infoview is hidden
}
else
{
//infoview is visible
}