Чтобы сделать что-то вроде UIKeyboard, я бы предложил вообще не использовать UIButtons, а вместо этого просто использовать UIView и использовать touchesBegan: touchesEnded: touchesMoved: методы, чтобы определить, где находится палец пользователя.
Чтобы выбрать кнопки при перемещении пальца, у вас могут быть другие виды внутри контейнера, которые будут обновляться при перемещении пальца над ним.Это можно сделать, выполнив тесты попадания, когда палец двигается вокруг, чтобы увидеть, какой пользователь завершил UIView, а затем отрегулировать его визуальное состояние, чтобы показать его.