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