【发布时间】:2021-08-11 11:32:51
【问题描述】:
这是表格视图的单元格类RegisterCell class (Table view cell) 的代码,这是我的控制器part 1 (view did load, view did appear functions、cellForRowAt function 和error 中的代码。 我的目标是让 registerCell 类中的水平视图在每次单击(或输入)相应的文本字段时更改背景颜色。这个错误的问题是什么?非常感谢任何帮助。 这就是我所说的对应texfield和视图the controller generates 6 of those
如下所示的 registerCell 类代码
import Foundation
import UIKit
class RegisterCell: UITableViewCell, UITextFieldDelegate{
@IBOutlet weak var userInfoLbl: UILabel!
@IBOutlet weak var userInfoTxtField: UITextField!
@IBOutlet weak var horizontalView: UIView!
func textFieldDidBeginEditing(_ textField: UITextField){
horizontalView.backgroundColor = UIColor(red: 0.0, green: 175.0/210.0, blue: 212.0/188.0, alpha: 1)
}
}
RegisterViewController 的代码如下所示:
override func viewDidLoad() {
super.viewDidLoad()
editButtonColorAndShapes()
configure()
self.tableView.separatorColor = .clear;
self.tableView.delegate = self
self.tableView.dataSource = self
// Do any additional setup after loading the view.
}
override func viewDidAppear(_ animated: Bool) {
configure()
self.tableView.register(RegisterCell.self, forCellReuseIdentifier: "registerCell")
editButtonColorAndShapes()
//r
}
@objc func textFieldDidChange(textfield: UITextField) {
switch textfield.tag {
case 0:
firstname = textfield.text!
case 1:
lastname = textfield.text!
case 2:
pnumber = textfield.text!
case 3:
email = textfield.text!
case 4:
passwrd = textfield.text!
textfield.isSecureTextEntry = true
case 5:
zipCode = textfield.text!
default:
break
}
registerModell = RegisterModel(fname: firstname, lname: lastname, fhone: pnumber, mail: email, pass: passwrd, zip: zipCode)
}
extension RegisterViewController: UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return titles.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "registerCell",
for: indexPath) as! RegisterCell
cell.selectionStyle = .none
cell.userInfoLbl?.text = titles[indexPath.row]
cell.userInfoLbl?.textColor = UIColor(named: "aquamarine")
cell.horizontalView.backgroundColor = UIColor(red: 0.0, green: 175.0/210.0, blue: 212.0/188.0, alpha: 0.25)
cell.userInfoLbl?.addCharacterSpacing(kernValue: 4.57)
cell.userInfoTxtField.delegate = delegatez
cell.userInfoTxtField.tag = indexPath.row
cell.userInfoTxtField.addTarget(self, action: #selector(textFieldDidChange), for: .editingChanged)
cell.configure()
return cell
}
【问题讨论】:
-
请编辑这篇文章并使用“{}”按钮添加代码。不喜欢代码作为图像。
-
@Demented07 完成:)
-
完全愚蠢的问题,但我看不出您是否将@IBOutlet HorizontalView 连接到寄存器单元格中的视图。
-
@MacUserT 我做了 :( 我检查了所有的连接
-
在尝试在测试项目中为您解决此问题之前,我想与您确认一件事。您是否在以文件所有者或
UITableViewCell连接的代码中连接了插座(它必须是UITableViewCell)
标签: swift uitableview uiview delegates tableview