Заставить объекты «разговаривать» друг с другом? - PullRequest
0 голосов
/ 31 марта 2011

Как проверить наличие коллизий между двумя UIImageViews с помощью метода, не входящего в класс ViewController?

Например:

Этот метод ниже находится в классе rock, но стекло UIImageView находится вViewController.

if (CGRectIntersectsRect (rock.frame, glass.frame)) {// do stuff}

Он жалуется, что стекло не объявлено.Итак, как мне обратиться к стеклянному UIImageView в ViewController, если я вызываю метод столкновения из класса rock ???Я не совсем уверен, как заставить классы «разговаривать» друг с другом в целом - это концепция, которую я не совсем понимаю, поэтому небольшой пример будет высоко оценен!Или, если кто-то может указать хорошее место для изучения этой концепции, которая очень поможет.Спасибо.

1 Ответ

0 голосов
/ 30 июня 2011

В конце концов, решение было простым. Я просто не понимал концепцию методов получения и установки.

Таким образом, ответ состоял в том, чтобы создать метод в объекте 'glass' следующим образом:

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

А затем вызвать его из объекта 'камень':

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

Возвращает истину, когда два прямоугольника пересекаются.

Я удивлен, что не получил ни одного ответа на это, так как в конце концов это было простое решение. Возможно я не объяснил себя должным образом? Надеюсь, я объяснил решение правильно. Если нет, то, пожалуйста, поправьте меня. Мы бы не хотели, чтобы слепой, ведущий слепого, был бы сейчас !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...