Как передать UIEvent на UIResponders ниже - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть много маленьких UIButtons и большое, которое покрывает их всех. Маленький UIButtons должен реагировать на UIControlEventTouchDownRepeat и вызывать селектор. Большой UIButton должен реагировать только на UIControlEventTouchDragInside. Однако большое UIButton потребляет все касания, а событие UIControlEventTouchDownRepeat не достигает маленьких кнопок внизу. Как я могу решить это?

1 Ответ

0 голосов
/ 27 ноября 2010

Если большое UIButton закрывает маленькие кнопки, то краткий ответ: вы не можете. События передаются по цепочке респондента, и когда дело доходит до просмотров, события передаются в его суперпредставление, если событие не обработано. Поскольку только представление может иметь одно суперпредставление, то, что вы хотите сделать, невозможно, по крайней мере, нелегко.

Если вы можете изменить макет, имея все маленькие кнопки поверх большой кнопки, это может сработать. Я не уверен, что события будут вести себя так, как вы хотели бы, вы просто должны проверить это. Но все события, не обработанные маленькой кнопкой, должны быть переданы большой кнопке.

Если вы можете захватить точку, к которой прикоснулись, для UIControlEventTouchDownRepeat, то вы сможете найти, какая маленькая кнопка находится ниже касания, и таким образом передать событие. Вам нужно было бы спросить суперпредставление маленьких кнопок, которое, возможно, совпадает с суперпредставлением для большой кнопки?

Возможно, вам захочется найти альтернативное решение, возможно, создать собственный элемент управления, который обрабатывает прикосновения так, как вы хотите.

...