這是我為表視圖的單元格類RegisterCell類(表視圖單元格)的代碼,這是我控制器第一部分(視圖確實加載了,視圖確實出現了函式,cellForRowAt函式和error。 我的目標是使 registerCell 類中的 horizontalview 在每次點擊(或輸入)相應的文本欄位時改變背景顏色。這個錯誤的問題是什么?非常感謝任何幫助。 這就是我所說的對應的文本欄位和視圖控制器生成6個這樣的文本欄位
registerCell類的代碼如下所示
import Foundation
import UIKit
class RegisterCell: UITableViewCell, UITextFieldDelegate{
@IBOutlet weak var userInfoLbl: UILabel!
@IBOutlet 弱 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()
配置()
self.tableView.separatorColor =.clear;
self.tableView.delegate = self.
self.tableView.dataSource=self
//在加載視圖后做任何額外的設定。
}
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: 名, lname: 姓, 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: "aquaamarine")
cell.horizontalView.backgroundColor = UIColor(紅色。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。
}
uj5u.com熱心網友回復:
我唯一的猜測是,為什么你的horizontalView會出現錯誤,這是因為IBOutlets沒有以某種方式正確連接(也許洗掉該出口,然后再次替換它)。然而,我已經讓horizontalView在用戶點擊textField開始輸入/編輯時改變自己的背景顏色。
為什么即使沒有你得到的錯誤,水平視圖也沒有改變顏色,原因是你沒有將文本欄位的Delegate設定為其單元格類。
注意:委托人會監聽并處理諸如觸摸和鍵入等事件,因此它是您所期望的結果所必需的。
我是這樣做的:
我是這樣做的。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView. dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! RegisterCell
cell.userInfoTxtField.delegate = cell
return cell。
}
uj5u.com熱心網友回復:
假設你把textField放在RegisterCell的contentView中,你可以把一個單元格作為textField的superview的超視圖。之后你可以改變horizontalView的背景顏色:
func textFieldDidBeginEditing(_ textField: UITextField) {
if let cell = textField. superview?.superview as? RegisterCell {
cell.horizontalView.backgroundColor = UIColor(red: 0.0, green: 175.0/210.0, blue: 212.0/188.0, alpha: 1)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/311740.html
標籤:
