Вы ищете жест в одно касание (например, круговой слайдер) или жест в два касания (например, захват и поворот ручки реального мира)?Если последнее, взгляните на UIRotationGestureRecognizer
.
Если первое, вы в значительной степени самостоятельно.Вы, безусловно, можете реализовать свое решение в качестве собственного собственного распознавателя жестов: это ожидается Apple, и есть некоторая документация, с которой можно начать (хотя я не видел там много работающих примеров).См. Также Как правильно создать подкласс UIGestureRecognizer .
В качестве общего подхода я бы подумала об области жеста как о форме пончика: зона с центром c , внутренний радиус r1 и внешний радиус r2 .Когда пользователь коснется, вы можете рассчитать расстояние от c , используя теорему Пифагора, и угол с вашей любимой функцией триггера.При этом вы можете определить, находится ли касание в зоне.Как пользователь перетаскивает, вы можете обновить значение элемента управления на основе угла.В какой-то момент они либо подправят, либо потянут за пределы зоны, и на этом жест закончится.Я предлагаю позволить касанию отклоняться довольно далеко внутри r1 или за пределами r2 : пальцы - неточные инструменты.