Как передать сенсорное событие в superview, когда userInteractionEnabled = YES?

У меня есть следующие настройки.

+- XXXCustomControl : UIControl -------+
| A                                    |
|   +- ContentView -------------------+|
|   |                                 ||
|   |  B                              ||
|   |                                 ||
|   +---------------------------------+|
+--------------------------------------+ 

XXXCustomControl, который является подклассом UIControl. Он содержит одно подпредставление с именем contentView типа UIView с размером, меньшим, чем область элемента управления. Это представление имеет .userInteractionEnabled = YES;

Мне нужно, чтобы это свойство было установлено в YES, потому что горизонтальные прокрутки время от времени помещаются внутрь, и их нужно прокручивать. Если суперпредставление (в нашем случае представление контента не позволяет взаимодействовать с пользователем, оно наследуется у подпредставлений.) Но в то же время этот XXXCustomControl должен быть применим, когда он не содержит прокрутки в своем представлении контента не только в области А, но и в области Б.

Так что у меня здесь «конфликт интересов», потому что я либо

1) установите представление контента на userInteractionEnabled = NO, тогда я могу нажать на пустой элемент управления в области просмотра контента как в A, так и в B, но скролл-обзоры, которые я здесь поместу, не будут прокручиваться ..

2) установите для представления содержимого значение userInteractionEnabled = YES, но затем, если элемент управления пуст, я могу только коснуться области A, чтобы вызвать событие касания.

Одна идея, которая пришла мне в голову, заключается в том, что я по умолчанию устанавливаю для свойства значение NO, а при заполнении contentView задаю для него значение yes. когда я очищаю contentView, я возвращаю свойству значение no. По сути, я хочу, чтобы для этого параметра всегда было установлено значение yes, а когда оно пустое, принудительно заставляет contentView передавать событие touchUpInside до своего суперпредставления.

Это возможно?

Ответы на вопрос(6)

Ваш ответ на вопрос