Swift2 如何将UIAPTestureRecognitor添加到表视图单元格内的UILabel?迅捷2

Swift2 如何将UIAPTestureRecognitor添加到表视图单元格内的UILabel?迅捷2,swift2,Swift2,我使用的是自定义表格视图单元格。此单元格有一个名为chatNameLabel的带有插座的标签。将UILongPressGestureRecognitor添加到此标签不会触发关联事件 我猜问题在于UILabel在TableView中,而table/cell视图正在拦截这些点击。我能做点什么吗 我只想在长按UILabel时执行一些自定义操作 我相信这一点在Objective-C中得到了回答,但我对该语言一点也不熟悉,对swift来说也是个新手 以下是我使用的代码: override func tab

我使用的是自定义表格视图单元格。此单元格有一个名为chatNameLabel的带有插座的标签。将UILongPressGestureRecognitor添加到此标签不会触发关联事件

我猜问题在于UILabel在TableView中,而table/cell视图正在拦截这些点击。我能做点什么吗

我只想在长按UILabel时执行一些自定义操作

我相信这一点在Objective-C中得到了回答,但我对该语言一点也不熟悉,对swift来说也是个新手

以下是我使用的代码:

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

。。。下面的问题不需要更多的代码

您的类需要实现
UIgestureRecognitizerDelegate
,那么下面的代码应该可以工作了

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)")
}

您的类需要实现
UIgestureRecognitizerDelegate
,然后下面的代码应该可以工作

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)")
}