让对象相互“交谈”?
问题描述:
如何使用不在ViewController类中的方法检查两个UIImageView之间的冲突?让对象相互“交谈”?
例如:
此方法波纹管中的岩石类,但玻璃的UIImageView在ViewController中。
如果(CGRectIntersectsRect(rock.frame,glass.frame)){ // 做的东西 }
它抱怨说,玻璃未声明。那么,如果我从rock类调用碰撞方法,我该如何引用ViewController中的玻璃UIImageView? 我不确定如何让课堂互相“交谈” - 这是一个我不太了解的概念,所以一个小例子将非常感谢!或者如果有人能指出一个很好的地方来学习这个概念,那将会有很大的帮助。 谢谢。
答
该解决方案最后很简单。我只是不明白getter和setter方法的概念。
因此,答案是做的方法在“玻璃”的对象,像这样:
-(BOOL)collidesWithRect:(CGRect)rect
{
return (CGRectIntersectsRect(self.frame, rect));
}
再从“摇滚”的对象调用它:
if([rock collidesWithRect:glass.frame])
{
//collision code
}
返回true时两个矩形相交。
我很惊讶我没有得到任何答复,因为这是最终的简单解决方案。也许我没有正确解释自己?希望我解释正确的解决方案。如果没有,请随时纠正我。我们现在不想盲目领先盲人!