2016-11-25 3 views
-1

Я работаю над приложением с музыкальным компонентом клавиатуры.Как я могу запустить кнопку, скользя по ней?

Мне нужно два типа «отправленных событий», чтобы вызвать клавиши клавиатуры (UIButtons).

1) «Touch Down» запускает кнопки они, как мне это нужно, чтобы

2) 2-я, как мне нужна кнопка, которые инициируются является сдвинув на кнопку, с другой кнопкой/клавиш на сторону он как бы «приземлился», когда он скользит слева или справа.

Как это достичь?

+0

@matt Хорошо. Это хорошее объяснение. К сожалению, это означает, что я начну с нуля и создаю некоторый тип «супервизора», который сможет управлять действиями кнопок, которые мне нужны ... Спасибо, что сообщили мне, что то, чего я пытаюсь достичь, невозможно с базовыми UIButtons и «отправлено событий "в IB. – PlateReverb

+0

@matt Знаете ли вы о любом учебнике о том, как реализовать что-то подобное в Swift? – PlateReverb

+0

@matt Я знаю только, что это имеет смысл на широком уровне. Я не знаю, как это реализовать. Я потратил несколько месяцев на текущую настройку клавиатуры для своего приложения (это изометрическая клавиатура с квадратными ключами в сетке 8x8 в прокручиваемом виде). Идея перекодировки этого с нуля с помощью пользовательского супервизора с subviews 8x16 добавит еще много проблем, которые мне нужно будет решить ... Вы уверены, что нет простого способа получить эту функциональность с помощью UIButton? Или иначе, не могли бы вы отправить мне ссылку на отправную точку, чтобы понять, как это сделать с помощью пользовательского супервизора и subviews? Спасибо за любую помощь! – PlateReverb

ответ

1

Вы не можете сделать это, используя встроенные управляющие события кнопок, по той простой причине, что вы вообще не получаете событие в кнопке, если касание первоначально в эта кнопка (как Я объясняю здесь: https://stackoverflow.com/a/40414929/341994).

Тем не менее это звучит не очень сложно. Самый простой подход - это, вероятно, включить сенсорный ответ (например, распознаватель жестов) в общий просмотр всех кнопок. Затем надзор может отслеживать жест. И он может очень легко узнать, какая кнопка в данный момент находится внутри в любой момент. Таким образом, он может управлять всем взаимодействием. Он может даже отправлять сообщения кнопкам, сообщающим им, когда выделять и высвечивать. (И если вы не собираетесь использовать сенсорную обработку кнопок для чего-либо, вы можете даже отказаться от идеи, что эти являются кнопками; они могут быть просто видами или настраиваемыми элементами управления, которые выглядят как кнопки.)