2016-06-17 15 views
0

私はカスタムテーブルビューセルを使用しています。このセルには、chatNameLabelという名前のコンセントが付いたラベルがあります。このラベルにUILongPressGestureRecognizerを追加すると、関連付けられたイベントは発生しません。UITapGestureRecognizerをテーブルビューのセル内のUILabelに追加するにはどうすればよいですか? Swift2

私は、UILabelがTableViewにあり、テーブル/セルビューがタップをインターセプトしているということを推測しています。これについて何かできますか?

私がしたいことは、UILabelを長押ししたときにカスタムアクションを実行することです。

私はこれがObjective-Cで答えられたと信じていますが、私は言語に精通しておらず、迅速ではありません。

はここに私が使用しているコードです:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    if let sessions = self.chatSessions where sessions.indices.contains(indexPath.row) { 
     let session = sessions[indexPath.row] 



     if session.sessionId == nil { 
      //DO A THING 
     } 
     // existing session id (existing chat) 
     else { 
      let cell = tableView.dequeueReusableCellWithIdentifier("ChatListCell", forIndexPath: indexPath) as! ChatListTableViewCell 
      cell.tag = indexPath.row 

      if(session.unreadChats) { 
       cell.indicatorImageView.tintColor = AppStyles.sharedInstance.indicatorActive 
      } 
      else{ 
       cell.indicatorImageView.hidden = true 
      } 
      //Want to do gesture on this label below cell.chatNameLabel 
      cell.chatNameLabel.text = session.chatName 

...あなたのクラスのニーズがUIGestureRecognizerDelegateを実装し、この

答えて

2

以下の質問のために必要ではないいくつかのより多くのコードは、以下のコードは動作するはずです。

myLabel.userInteractionEnabled = true 
let tap: UILongPressGestureRecognizer = UILongPressGestureRecognizer(
target: self, action: #selector(tappedTheLabel)) 
tap.minimumPressDuration = 0.5 
tap.delaysTouchesBegan = true 
myLabel.addGestureRecognizer(tap) 
tap.delegate = self 
} 

func tappedTheLabel(sender: UITapGestureRecognizer) 
{ 
print("label hit \(sender)") 
} 
関連する問題