当我在表格视图中添加一行时如何更改文本字段中的文本颜色
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
- 前 class 个名字以大写字母开头。
- 其次,关于您的代码,您需要添加一些代码:
- 在
secondViewController
您将添加另外两个声明,
var budgetTitleTextFieldColor = UIColor.black
因为黑色是文本的默认颜色或您使用的任何颜色
var budgetAmountTextFieldColor = UIColor.black
与 budgetTitleTextFielColor
相同
添加到
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
}
然后在按钮操作中
@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()
}
我有两个 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
- 前 class 个名字以大写字母开头。
- 其次,关于您的代码,您需要添加一些代码:
- 在
secondViewController
您将添加另外两个声明,var budgetTitleTextFieldColor = UIColor.black
因为黑色是文本的默认颜色或您使用的任何颜色var budgetAmountTextFieldColor = UIColor.black
与budgetTitleTextFielColor
相同
添加到
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 }
然后在按钮操作中
@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() }