Я искал решение, и мне не повезло найти его.Если это было задано ранее, возможно, кто-нибудь может указать на это или помочь мне с идеей.
У меня есть UIViewController
, на котором размещены пользовательские виды.Первый пользовательский вид - полный экран.Второй пользовательский вид - это фактически меню, которое скользит в вид из нижней части экрана, аналогично панели инструментов с пользовательской анимацией, а затем должно выдвигаться.
Текущее подтверждение: меню сдвигается в представление после задержки (после появления представления), и NSTimer начинает считать.Он остается в поле зрения в течение нескольких секунд, пока NSTimer не запустит другой метод, и этот метод вернет меню обратно.
Все работает нормально.
Что я хочу: Если пользователь начинает взаимодействовать с меню, переключателями, ползунком и т. Д., Я хочу, чтобы меню оставалось в представлении, задерживая запуск NSTimer до тех пор, пока пользователь не закончит взаимодействие.Затем уберите меню.
Для этого я использовал NSTimer в методе, который перемещает меню в представление, чтобы запустить другой метод, который убирает меню после X мсек.
Вметод, который убирает меню, я делаю недействительным таймер.
Я отверг метод tocuhesBegan
, чтобы посмотреть, попадает ли область взаимодействия в границы меню, если так, то NSTimer сбрасывается для другогоX мсек.
Проблема: Если пользователь касается фона меню, это нормально, но если пользователь взаимодействует с переключателями, кнопками и слайдами в меню, menu.view
нерегистрировать касания, что имеет смысл, потому что они являются передней линией и исчерпывают событие касания, поэтому событие касания не передается по иерархии.Но с другой стороны, это моя проблема !!
Я не могу переопределить каждый touchesBegan
метод в каждом элементе menu.view
.Как еще я могу зарегистрироваться для тех касаний, которые происходят в области menu.view?
Я пытался locationInView:nil
, чтобы получить касания в окне, но это не регистрирует взаимодействия с кнопками и ползунками,и т. д.
Спасибо.