У меня есть следующие настройки.
+- XXXCustomControl : UIControl -------+
| A |
| +- ContentView -------------------+|
| | ||
| | B ||
| | ||
| +---------------------------------+|
+--------------------------------------+
XXXCustomControl, который является подклассом UIControl. Он содержит одно подпредставление с именем contentView типа UIView с размером, меньшим, чем область Control. Это представление имеет .userInteractionEnabled = YES
;
Мне нужно, чтобы это свойство было установлено в YES, потому что горизонтальные прокрутки время от времени помещаются внутрь, и их нужно прокручивать. Если суперпредставление (в нашем случае представление контента не позволяет взаимодействовать с пользователем, оно наследуется у подпредставлений.) Но в то же время этот XXXCustomControl
должен быть применим, когда он не содержит прокрутки в своем представлении контента не только в области А, но и в области Б.
Так что у меня здесь "конфликт интересов", потому что я либо
1) установите представление контента на userInteractionEnabled = NO
, тогда я могу нажать на пустой элемент управления в области просмотра контента как в A, так и в B, но скролл-обзоры, которые я здесь поместу, не будут прокручиваться..
2) установите для представления содержимого значение userInteractionEnabled = YES
но затем, если userInteractionEnabled = YES
управления пуст, я могу только коснуться области A, чтобы вызвать событие касания.
Одна идея, которая пришла мне в голову, заключается в том, что я по умолчанию устанавливаю для свойства значение NO, а при заполнении contentView задаю для него значение yes. когда я очищаю contentView, я возвращаю свойству значение no. По сути, я хочу, чтобы для этого параметра всегда было установлено значение yes, а когда оно пустое, принудительно заставляет contentView передавать событие touchUpInside до своего суперпредставления.
Это возможно?