gpt4 book ai didi

ios - 当 textFieldDidBeginEditing 中的 tableView.reloadData() 时键盘不显示

转载 作者:行者123 更新时间:2023-11-28 15:01:33 24 4
gpt4 key购买 nike

我将 UITextField 放在 UITableViewCell 中,并希望突出显示 tableViewCell 并且未选择的 tableViewCell 变为原始颜色,如果用户在每个 UITextField 中键入。所以,我确实喜欢那样。

func textFieldDidBeginEditing(_ textField: UITextField) {
defaultIndex = textField.tag
dynamicFormTable.reloadData()
}

但问题是当我添加 dynamicFormTable.reloadData() 时,Keyboard 没有显示。请让我知道如何解决它。谢谢。

最佳答案

下面的代码会给出好的结果,避免重新加载

var cellBGColr = [Int : UIColor]()
var previouselectedRow = [Int]()

override func viewDidLoad() {
super.viewDidLoad()
for i in 0..<70 // numberOfRows
{
cellBGColr[i] = UIColor.white
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return 70
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "table", for: indexPath) as! TblTableViewCell

cell.backgroundColor = cellBGColr[indexPath.row]
cell.selectionStyle = .none
return cell
}
func textViewShouldBeginEditing(_ textView: UITextView) -> Bool {

let cellPosition = textView.superview?.convert(CGPoint.zero, to: tblView)
let indPath : IndexPath = tblView.indexPathForRow(at: cellPosition!)!

let cell = tblView.cellForRow(at: indPath) as! TblTableViewCell

var previousSelectedCellRow : Int = -1 // FOR VALIDATION

if previouselectedRow.count == 0 // FIRST EDIT
{
previouselectedRow.append(indPath.row)
}
else
{
previousSelectedCellRow = previouselectedRow[0]

if previousSelectedCellRow == indPath.row // SAME ROW EDITING AGAIN
{

}
else // NEW ROW
{
let previousIndPath : IndexPath = IndexPath(row: previousSelectedCellRow, section: 0)

if (tblView.indexPathsForVisibleRows?.contains(previousIndPath))!
{
let previousCell = tblView.cellForRow(at: previousIndPath) as! TblTableViewCell

previousCell.backgroundColor = UIColor.white

cellBGColr[previousSelectedCellRow] = UIColor.white

}
else
{
cellBGColr[previousSelectedCellRow] = UIColor.white
}

previouselectedRow.remove(at: 0)
previouselectedRow.append(indPath.row)

}
}

cell.backgroundColor = UIColor.red // HERE YOU CAN CHANGE UR CELL COLOR

cellBGColr[indPath.row] = UIColor.red // HERE STORED IN DICT
return true
}

在滚动你的表格 View 时,或者你尝试重新加载的地方,单元格背景颜色不会改变/重复使用。

关于ios - 当 textFieldDidBeginEditing 中的 tableView.reloadData() 时键盘不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864132/

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