Установить подпредставление в качестве ответчика на вызовы родительского подкласса UIView - PullRequest
0 голосов
/ 07 октября 2011

У меня есть UIView, который я разделил на подклассы, чтобы он был основным видом, используемым в моем приложении. В нем у меня есть два подпредставления: баннер и контейнер. Баннер - это место, где можно разместить рекламу, отказ от ответственности или что-то еще. Контейнер предназначен для того, чтобы выступать в качестве основного представления, к которому вы можете добавлять, удалять и все что угодно, как если бы это было единственное представление.

Сейчас я просто переопределяю методы родительского представления и отправляю вызовы в контейнерное представление. Мне интересно, есть ли более простой способ сделать это без необходимости писать что-то подобное для каждого метода:

- (void)addSubview:(UIView*)view {
  [container addSubview:view];
}

Может быть, что-то, что позволяет вам делегировать все вызовы методов для представления конкретному подпредставлению, а не отвечать на вызовы самого метода.

Кто-нибудь знает, возможно ли это?

1 Ответ

0 голосов
/ 07 октября 2011

Меня немного смущает вопрос.

Цепочка респондента присутствует и передает события пользовательского интерфейса вверх по всем видимым представлениям на экране по иерархии.Может быть полезно прочитать немного о цепочке респондента, потому что по своей конструкции она передает события от самого глубокого представления к самому высокому (корневому) в этом порядке, который противоположен направлению, которое вы ищете (если я читаюэто правильно).

Если вам нужно перенаправить события из суперпредставления в подпредставление, чтобы уважать принципы инкапсуляции, вы должны определить соответствующие действия в интерфейсе подкласса вашего подпредставления, а затем настроить суперпредставление для назначения действий.в этом подпредставлении / классе.

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