gpt4 book ai didi

ios - UITableViewCell 不能用一根手指点击,但可以用两根手指点击

转载 作者:可可西里 更新时间:2023-10-31 23:56:49 25 4
gpt4 key购买 nike

我创建了一个表格 View ,tableViewCell 不能用一根手指点击,但是当我尝试用两根手指点击 tableViewCell 时,点击事件发生了。我不知道为什么会这样。我在 tableView 中创建了一个自定义单元格。

邀请VC

import UIKit

class InvitePeopleVC: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {

var nameArray = ["Alwin Lazar", "Ajith Ramesh CR", "Ebrahim KK", "Vishnu Prakash"]
var emailArray = ["alwin@xeoscript.com", "ajith@xeoscript.com", "ebrahim@xeoscript.com", "vishnu@xeoscript.com"]

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var doneImg: UIImageView!
@IBOutlet weak var nameTextFld: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
delegates()
uiModifications()
gestureRecognizers()
}

func delegates() {
tableView.dataSource = self
tableView.delegate = self
nameTextFld.delegate = self
}

func uiModifications() {
nameTextFld.attributedPlaceholder = NSAttributedString(string: "Name or email address", attributes: [NSForegroundColorAttributeName: UIColor.white])
}

func gestureRecognizers() {
self.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(InvitePeopleVC.dismissKeyboard)))
self.doneImg.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(InvitePeopleVC.doneImgPressed)))
}

func dismissKeyboard() {
nameTextFld.resignFirstResponder()
}

func doneImgPressed() {
print("done Image tapped")

}

func inviteBtnPressed() {
print("invite button pressed")
}

// UITextFieldDelegate method
func textFieldShouldReturn(_ textField: UITextField) -> Bool {

if textField == self.nameTextFld {

self.nameTextFld.resignFirstResponder()

}
return true

}

// TableView DataSource methods
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return nameArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = "InviteCell"
let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! InviteCell

cell.nameLbl.text = nameArray[indexPath.row]
cell.emailLbl.text = emailArray[indexPath.row]

return cell
}

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}

// TableView Delegate methods
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("selected row is \(indexPath.row)")
}



@IBAction func backBtnPressed(_ sender: Any) {
dismiss(animated: true, completion: nil)
}
}

#InviteCell

import UIKit

class InviteCell: UITableViewCell {

@IBOutlet weak var nameLbl: UILabel!
@IBOutlet weak var emailLbl: UILabel!

override func awakeFromNib() {
super.awakeFromNib()

}

}

UIViewController 图片

TableView 属性检查器

enter image description here

InviteCell 属性检查器

enter image description here

enter image description here

在上面的代码中,我试图用一根手指选择一个单元格,但没有发生选择。

提前致谢...

最佳答案

处理点击问题的更优雅的方法是:

          let tap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(AppController.dismissKeyboard))

view.addGestureRecognizer(tap)

//this is the KEY of the fix
tap.cancelsTouchesInView = false

通过这种方式,您可以保留手势识别器,并且仍然可以通过单击/选择获得表格 View 操作。

关于ios - UITableViewCell 不能用一根手指点击,但可以用两根手指点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43109298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com