我是一个在单元格中显示文本的tableView类。我需要能够触摸/单击单元格中的文本,并根据单击的单元格中的文本创建操作(显示下一个表格视图)。课程如下:
import UIKit
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
@IBOutlet var tableView: UITableView!
let textCellIdentifier = "TextCell"
let catRet = XnYCategories.mainCats("sport")
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self
tableView.dataSource = self
}
// MARK: UITextFieldDelegate Methods
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return catRet.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier(textCellIdentifier, forIndexPath: indexPath) as! UITableViewCell
let row = indexPath.row
cell.textLabel?.text = catRet[row]
return cell
}
// MARK: UITableViewDelegate Methods
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
let row = indexPath.row
println(catRet[row])
}
}
答案 0 :(得分:1)
我想补充一下Linus的答案,因为它在最新的Swift中已被弃用。
Swift 4:
在myCell中添加此识别器,
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(yourVC.yourfuncName))
myCell.addGestureRecognizer(tapGesture)
在同一个VC中,实现你的功能,
func yourfuncName(){
//Do whatever you want here
}
答案 1 :(得分:0)
您可以使用
获取您的手机let currentCell = tableView.cellForRowAtIndexPath(indexPath) as UITableViewCell
要获取文字,您可以使用
var selectedText = currentCell.textLabel?.text
答案 2 :(得分:0)
如果你有一个硬编码的单元格数量,你可以创建一个UIGestureRecognizer
并将其添加到创建的单元格中:
let tapGesture = UITapGestureRecognizer(target: self, action: "tapped:")
myCell.addGestureRecognizer(tapGesture)
在它的目标中,你可以做任何你想做的事。