2015-08-23 3 views
0

Я хотел бы сделать долгое нажатие Tableview клеток, но я получаю сообщение об ошибке:быстро GestureRecognizer в клетках

UIGestureRecognizer.Type' does not have a member named 'state'

Вот код

override func viewDidLoad() { 
     super.viewDidLoad() 

     var gesture: UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "longPressed:") 
     gesture.minimumPressDuration = 2.0 
     self.view.addGestureRecognizer(gesture) 

     } 

func longpressed() { 

    if(UIGestureRecognizer.state == UIGestureRecognizerState.Ended){ 

     print("ended") 
    } else if (UIGestureRecognizer.state == UIGestureRecognizerState.Began){ 

     print("began") 


    } 
} 

И да я создал Bridging-заголовок .h и импортировал этот файл:

#import <UIKit/UIGestureRecognizerSubclass.h> 

Мне нужен быстрый учебник не объективно-c!

+0

Вы пытались добавить жест каждому объекту ячейки? Нет необходимости импортировать этот класс. – Amit89

+0

@ Amit89 благодарит за ваш ответ, Этот код был в Tableview, и как я могу добавить жест в каждой ячейке? – Salah

+1

Возможный дубликат [UIGestureRecognizer и проблема UITableViewCell] (http://stackoverflow.com/questions/4604296/uigesturerecognizer-and-uitableviewcell-issue) –

ответ

1

Добавить жест распознавани к вашему UITableView как

var gestureRec = UILongPressGestureRecognizer(target: self, action: "didTap:") 
    self.tableView.addGestureRecognizer(gestureRec) 

didTap Реализовать функцию, которая будет выглядеть примерно так.

func didTap(sender : UIGestureRecognizer) 
{ 
    if sender.state == .Began { 
     var location = sender.locationInView(self.tableView) 
     var indexPath = self.tableView.indexPathForRowAtPoint(location) 
     var cell = self.tableView.cellForRowAtIndexPath(indexPath!) 
    } 
} 

Это должно сработать.

0

Попробуйте это в методе longPress:

func longpressed(sender: UILongPressGestureRecognizer) { 

var state = sender.state 

if(state.state == UIGestureRecognizerState.Ended){ 
    print("ended") 

} else if (state.state == UIGestureRecognizerState.Began){ 
    print("began") 

} 
} 
Смежные вопросы