Я пытаюсь определить, есть ли средство программной установки состояния распознавателя жестов, чтобы заставить его начать до того, как он действительно обнаружит ввод пользователя.Программный запуск распознавателя жестов в Swift?
Например, я добавляю распознаватель жеста к изображению, когда обнаружено длинное нажатие;
let longPressRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressed:")
myImage.addGestureRecognizer(longPressRecognizer)
func longPressed(sender: UILongPressGestureRecognizer) {
let mainWidth = UIScreen.mainScreen().bounds.width
let mainHeight = UIScreen.mainScreen().bounds.height
let myView: UIView(frame: CGRect(x: 0, y: 0, width: mainWidth, height: mainHeight)
let gestureRecognizer = UIPanGestureRecognizer(target: self, action: "handlePan:")
myView.addGestureRecognizer(gestureRecognizer)
self.view.addSubview(myView)
}
В функции handlePan()
, я могу определить, когда панорамирование начинается и заканчивается;
func handlePan(gesture: UIPanGestureRecognizer) {
if gesture!.state == UIGestureRecognizerState.Began {
print("Started pan")
}
if gesture!.state == UIGestureRecognizerState.Ended {
print("Ended pan")
}
}
Моя проблема заключается в том, чтобы определить, когда жест начала, пользователь должен (1) Длительное нажатие на изображение, (2) освободить палец (3) нажмите и удерживайте и начать панорамирование. В идеале я хотел бы, чтобы пользователь (1) долго нажимал на изображение, (2) начинал панорамирование.
Для достижения этой цели я представляю себе, что мне нужно выяснить способ «обмануть» вещи, полагая, что жест пантов уже начался.
примечание: В практичности сложность сложнее, чем представленная здесь, поэтому мне нужно добавить подзону с помощью жесты панорамы, а не просто добавить жест панорамы к изображению напрямую.
Не могли бы вы прикоснуться к событию «Touch Down» вместо «Touch Up Inside». Тогда вам не нужно будет выпустить палец для отправки события. – Starlord