Я пытаюсь закрыть всплывающее меню, если пользователь выбирает где-либо, кроме как в пределах самого всплывающего окна. Другими словами, они выбирают фон, всплывающее окно закрывается.
В настоящее время у меня есть RootViewController, который загружает UIView с кучей других элементов пользовательского интерфейса.
В какой-то момент отображается всплывающее (пользовательское) меню - это отдельный UIViewController со связанным .xib. Его загружается на экран:
SectionsChooserViewController *cv = [[SectionsChooserViewController alloc] initWithNibName:@"SectionsChooserViewController" bundle:[NSBundle mainBundle]];
cv.view.frame = CGRectMake(584, 391, 314, 346);
cv.delegate = self;
Этот вид занимает только небольшую часть экрана. Поэтому добавленный код обнаружения касаний к этому представлению будет регистрировать обратный вызов только в том случае, если вы включили представление.
Если я не обрабатываю касания в «SectionsChooserViewController» и вместо этого реализую touchesBegan в rootViewController (который загружает «SectionsChooser ...»), он не будет вызван для 90% представления, потому что UIScrollView это Кажется, я зарегистрировал касание и не передал его.
Есть ли способ заставить UIScrollView передавать событие касания?
Редактировать: По крайней мере, я думаю , что UIScrollView принимает событие касания. Я не уверен - у меня есть около 20 элементов управления пользовательского интерфейса на странице.
Редактировать: Хорошо, это UIScrollView. Если я отключу взаимодействие с включенным на обоих scrollView, UIView получит прикосновения, но это нарушит UIScrollViews - так что это не будет работать.