让对象互相“交谈”?

时间:2011-03-30 23:18:37

标签: xcode

如何使用ViewController类中没有的方法检查两个UIImageViews之间的冲突?

例如:

此方法属于摇滚类,但玻璃UIImageView位于ViewController中。

if(CGRectIntersectsRect(rock.frame,glass.frame)) {     //做东西 }

它抱怨玻璃没有申报。那么如果我从摇滚类中调用碰撞方法,我如何参考ViewController中的玻璃UIImageView? 我不确定如何让课程彼此“交谈” - 这是一个我不太了解的概念,所以一个小例子将不胜感激!或者,如果有人能指出一个学习这个概念的好地方,那将会有很大帮助。 感谢。

1 个答案:

答案 0 :(得分:0)

最终解决方案很简单。我只是不理解getter和setter方法的概念。

所以答案是在'glass'对象中制作一个方法,如下所示:

-(BOOL)collidesWithRect:(CGRect)rect
{
   return (CGRectIntersectsRect(self.frame, rect));
}

然后从'摇滚'对象中调用它:

if([rock collidesWithRect:glass.frame])
{
    //collision code
}

当两个矩形相交时返回true。

我很惊讶我没有得到任何回复,因为它最终是简单的解决方案。也许我没有正确解释自己?希望我正确解释了解决方案。如果没有,请随时纠正我。我们现在不希望盲人领导盲人!!!