Добавление жестов к кнопке в Swift

Я пытаюсь добавить функцию жеста (пролистывания) к существующей кнопке в моем представлении, но я не могу понять, как прикрепить пролистывание к области кнопки.

Желаемый эффект состоит в том, чтобы иметь кнопку, которую я могу нажать, а также провести по экрану, чтобы получить разные результаты. Пока то, как я реализую жесты, применяется ко всему моему представлению, а не только к кнопке.

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

(Кстати, я назначаю @IBOutlet var swipeButton: UIButton! моей кнопке)

Код ниже:

class ViewController: UIInputViewController {

@IBOutlet var swipeButton: UIButton!

let swipeRec = UISwipeGestureRecognizer()

override func viewDidLoad() {
    super.viewDidLoad()
    self.loadInterface()

    var swipeButtonDown: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "ButtonDown")
    swipeButtonDown.direction = UISwipeGestureRecognizerDirection.Down
    self.view.addGestureRecognizer(swipeButtonDown)
}

@IBAction func buttonPressed(sender: UIButton) {
    var proxy = textDocumentProxy as UITextDocumentProxy
    proxy.insertText("button")
}
func buttonDown(){
    var proxy = textDocumentProxy as UITextDocumentProxy
    proxy.insertText("swipe")
}

}

person glasstongue    schedule 21.01.2015    source источник


Ответы (1)


Если вы хотите добавить swipeGesture в кнопку, сделайте это следующим образом:

self.yourButton.addGestureRecognizer(swipeButtonDown)

а также в отправленном вами селекторе есть ошибка, она должна быть такой:

var swipeButtonDown: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: "buttonDown")

изменить ButtonDown на buttonDown

person Dharmesh Kheni    schedule 21.01.2015
comment
Я установил его в строке 13 следующим образом - он продолжает падать, поэтому я определенно делаю что-то не так: D self.swipeButton.addGestureRecognizer(swipeButtonDown) - person glasstongue; 21.01.2015
comment
Сначала я отредактировал не тот [здесь: var swipeButtonDown: UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: ButtonDown)] и не отменял - работает как шарм!!! Я бы проголосовал за вас, но я скромный нуб - Ура! - person glasstongue; 21.01.2015
comment
Быстрый вопрос - чтобы сделать несколько направлений, мне нужно назначить несколько @IBOutlet var swipeButton: UIButton! - person glasstongue; 21.01.2015
comment
проверьте это: stackoverflow .com/questions/24215117/ - person Dharmesh Kheni; 21.01.2015