当我在表格视图中添加一行时如何更改文本字段中的文本颜色

how to change textcolor in textfield when I add a row in tableview

我有两个 buttons.one 是 @addIncomeTapped,另一个是 @addExpenseTapped.what 我想做的是在用户点击(例如)addIncomeTapped 按钮后更改文本字段中的文本颜色.我想弄明白,但没有运气:'(我希望有人能帮助我吗?我还在努力提前学习 swift more.thanks。

import UIKit
class MySecondCell:UITableViewCell,UITextFieldDelegate
{    
    @IBOutlet weak var budgetTitle: UITextField!
    @IBOutlet weak var budgetAmount: UITextField!
}

class secondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{

   var textfield: UITextField!    
   var SecondBudgetName = [String]()

   @IBOutlet weak var balanceView: UIView!
   @IBOutlet weak var mytableView: UITableView!

   override func viewDidLoad() {
    super.viewDidLoad()

    mytableView.delegate = self
    mytableView.dataSource = self

    view.addVerticalGradientLayer(topColor: primaryColor, bottomColor: secondaryColor)

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


@IBAction func addIncomeTapped(_ sender: Any) {
print("Add income tapped")
    //Add new row
    insert()
}

@IBAction func addExpenseTapped(_ sender: Any) {
print("Add expense tapped")
    //Add new row
    insert()

}

func insert(){
    SecondBudgetName.append("\(SecondBudgetName.count + 1)")
    let insertionIndexPath = IndexPath(row: SecondBudgetName.count - 1 , section: 0)
    mytableView.insertRows(at: [insertionIndexPath], with: .automatic)
}

//Configure TableView

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {

    if editingStyle == UITableViewCellEditingStyle.delete {
        SecondBudgetName.remove(at: indexPath.row)
        tableView.beginUpdates()
        tableView.deleteRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
        tableView.endUpdates()
    }
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return SecondBudgetName.count
}

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

    return cell

}

}

here is my tableviewcontroller

  1. 前 class 个名字以大写字母开头。
  2. 其次,关于您的代码,您需要添加一些代码:
  3. secondViewController 您将添加另外两个声明, var budgetTitleTextFieldColor = UIColor.black 因为黑色是文本的默认颜色或您使用的任何颜色 var budgetAmountTextFieldColor = UIColor.blackbudgetTitleTextFielColor
  4. 相同
  5. 添加到

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = mytableView.dequeueReusableCell(withIdentifier: "budgetCell") as! MySecondCell
    cell.budgetTitle.textColor = budgetTitleTextFieldColor
    cell.budgetAmount.textColor = budgetAmountTextFieldColor
    return cell
    }
    
  6. 然后在按钮操作中

    @IBAction func addIncomeTapped(_ sender: Any) {
        print("Add income tapped")
        //Add new row
        insert()
        // here you change the colors we declared in the beginning, it depends which one you want to change
        budgetTitleTextFieldColor = UIColor.whateverYourColorIs
        budgetAmountTextFieldColor = UIColor.whateverYourColorIs
        // don't forget this
        tableView.reloadData()}
     @IBAction func addExpenseTapped(_ sender: Any) {
           print("Add expense tapped")
           //Add new row
           insert()
           // here you change the colors we declared in the beginning
           budgetTitleTextFieldColor = UIColor.whateverYourColorIs
           budgetAmountTextFieldColor = UIColor.whateverYourColorIs
           // don't forget this
          tableView.reloadData()
    }