如何比较坐标是否等于对象的原始坐标

时间:2016-08-10 04:44:04

标签: ios swift compare coordinates

有人可以帮助我吗?

让我们从主要信息开始:​​我创建了一个具有2个视图的应用程序,其中一个名为InfoView。此InfoView位于屏幕外,其代码如下:

(代码隐藏视图)

UIView.animateWithDuration(1.0, delay: 0.3, options: [ ], animations: {self.InfoView.center.x -= self.view.bounds.width + 150}, completion: nil)

应用启动时自动移动。我在ViewDidAppear上放置了代码隐藏视图。

当按下Info按钮时,InfoView从左到右缓和到原始坐标,(我将它放在故事板上,x = 12,y = 20,视图大小取决于屏幕大小)。我使用以下代码将其恢复。

(代码显示视图)

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运行。 然后我用以下方式隐藏了视图:

InfoView.Hidden = True

当我运行Show View代码时,它变为false,当它隐藏时,它变为true,依此类推。然而,现在当我接到一个电话并且在通话结束后我看不到InfoView(这很好)虽然如果我按下显示信息按钮,InfoView将突然出现在屏幕上并缓和屏幕的右侧,使得它无法到达(屏幕外)。

我的问题是有一种比较InfoView坐标的方法,这样如果它在屏幕上(我没有调用它,运行show View),它可以在屏幕外发回。就像if语句一样。比如:

if InfoView == CGPoint(12,20).... //(Then Run Hide View)

(我知道if语句是错误的)我确实理解我必须在applicationWillResignActive中的app delegate中运行该func。

请有人帮助我,我是在正确的轨道上还是有人可以给我另一种解决方案。 (告诉我如果我需要更好地解释它)

1 个答案:

答案 0 :(得分:0)

您应该通过以下方式进行比较。不要与硬编码点进行联合。

if(InfoView.center.x > self.view.bounds.width)
{
    //infoview is hidden
}
else
{
    //infoview is visible
}