iOS - 自定义 TableViewCell 中的 TapRecogniser 无法正常工作
iOS - TapRecogniser in custom TableViewCell not working properly
我正在使用 Xcode 7 Beta,Swift 2
我有一个带有自定义 tableViewCell 的 table 视图。在自定义单元格中有一个 UIImageView 和标签。我也为这个 tableViewCell 定义了一个 testCell class。在图像上(在 table 内)我添加了 UITapRecogniser。我还启用了用户交互
问题:目前我在 table 中有 3 行。当我点击前两行的图片时。什么都没发生。当我单击最后一行中的图像时 - 该操作会在控制台上打印 "DEF"。这与行数无关 - 即使更改为 4、5 或其他任何内容后问题仍然存在。基本上只有最后一行中的图像会被点击。不知道为什么??下面是代码:
//Defining custom class for the TableViewCell
class testCell : UITableViewCell{
@IBOutlet weak var testLabel: UILabel!
@IBOutlet weak var testImage: UIImageView!
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! testCell
cell.testLabel?.text = "ABC"
cell.testImage?.image = UIImage(named: "Santa")
return cell
}
@IBOutlet weak var tableView: UITableView!
//TapGestureRecogniser Function
@IBAction func imageTap(sender: AnyObject) {
print("DEF")
}
将添加手势识别器调用从 testCell 移动到 cellforrowatindexpath。
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! testCell
cell.testLabel?.text = "ABC"
cell.testImage?.image = UIImage(named: "Santa")
let cellTapRecognizer = UITapGestureRecognizer(target: self, action:Selector("imageTap:"))
cellTapRecognizer.cancelsTouchesInView = false
cell.testImage?.addGestureRecognizer(cellTapRecognizer)
我正在使用 Xcode 7 Beta,Swift 2 我有一个带有自定义 tableViewCell 的 table 视图。在自定义单元格中有一个 UIImageView 和标签。我也为这个 tableViewCell 定义了一个 testCell class。在图像上(在 table 内)我添加了 UITapRecogniser。我还启用了用户交互
问题:目前我在 table 中有 3 行。当我点击前两行的图片时。什么都没发生。当我单击最后一行中的图像时 - 该操作会在控制台上打印 "DEF"。这与行数无关 - 即使更改为 4、5 或其他任何内容后问题仍然存在。基本上只有最后一行中的图像会被点击。不知道为什么??下面是代码:
//Defining custom class for the TableViewCell
class testCell : UITableViewCell{
@IBOutlet weak var testLabel: UILabel!
@IBOutlet weak var testImage: UIImageView!
}
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! testCell
cell.testLabel?.text = "ABC"
cell.testImage?.image = UIImage(named: "Santa")
return cell
}
@IBOutlet weak var tableView: UITableView!
//TapGestureRecogniser Function
@IBAction func imageTap(sender: AnyObject) {
print("DEF")
}
将添加手势识别器调用从 testCell 移动到 cellforrowatindexpath。
let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! testCell
cell.testLabel?.text = "ABC"
cell.testImage?.image = UIImage(named: "Santa")
let cellTapRecognizer = UITapGestureRecognizer(target: self, action:Selector("imageTap:"))
cellTapRecognizer.cancelsTouchesInView = false
cell.testImage?.addGestureRecognizer(cellTapRecognizer)