我想在这里做几件事
第一:我正在尝试保存标签中的计算,即使在关闭应用程序时也是如此。
第二:在将新值添加到tableView之后,我正在尝试使计算不断添加到每个表中。目前,如果我添加了一个产品,它计算并打印在标签中,那么当我添加另一个产品时,它会清除它并执行新的计算,但我希望它继续相互添加。
第三:(这还没有加进去,我只计算了利润和总数),我试图让它加起来添加了多少tableView单元格,然后用ordersLabel打印并保存
然后,我只需要有所有的标签,以保存价值,并继续添加,一旦有人添加另一个产品。
表视图保存,但不保存标签。
如果有人能帮得上忙的话!
import UIKit
class ViewController: UIViewController, UIAdaptivePresentationControllerDelegate, UITextFieldDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var productTextField: UITextField!
@IBOutlet weak var productPriceTextField: UITextField!
@IBOutlet weak var productSaleTextField: UITextField!
@IBOutlet weak var orderLabel: UITextField!
@IBOutlet weak var costLabel: UILabel!
@IBOutlet weak var profitLabel: UILabel!
@IBOutlet weak var totalLabel: UILabel!
var items: [ItemRow] = []
struct ItemRow: Codable{
var first: String
var second: String
var third: String
}
override func viewDidLoad() {
super.viewDidLoad()
load()
// Do any additional setup after loading the view.
}
@IBAction func addButtonTapped(_ sender: Any) {
insertNewItems()
save()
}
func save(){
if let data = try? PropertyListEncoder().encode(items) {
UserDefaults.standard.set(data, forKey: "SavedItems")
}
}
func load(){
let defaults = UserDefaults.standard
if let data = defaults.data(forKey: "SavedItems") {
items = try! PropertyListDecoder().decode([ItemRow].self, from: data)
}
}
func insertNewItems() {
let newVideoRow = ItemRow(first: productTextField.text!, second: productPriceTextField.text!, third: productSaleTextField.text!)
items.append(newVideoRow)
let indexPath = IndexPath(row: items.count - 1, section: 0)
tableView.insertRows(at: [indexPath], with: .automatic)
if let priceValue = Double(productPriceTextField.text!),
let saleValue = Double(productSaleTextField.text!) {
profitLabel.text = String(saleValue - priceValue)
}
if let priceValue = Double(productPriceTextField.text!),
let saleValue = Double(productSaleTextField.text!) {
totalLabel.text = String(saleValue + priceValue)
}
productTextField.text = ""
productPriceTextField.text = ""
productSaleTextField.text = ""
view.endEditing(true)
}
}
extension ViewController: UITableViewDelegate{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let ItemTitle = items[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "ItemCell") as! ItemCell
cell.productCellLabel.text = ItemTitle.first
cell.productPriceCellLabel.text = ItemTitle.second
cell.productSaleCellLabel.text = ItemTitle.third
tableView.separatorColor = UIColor(red:0.92, green:0.92, blue:0.92, alpha:1.0)
return cell
}
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
items.remove(at: indexPath.row)
tableView.beginUpdates()
tableView.deleteRows(at: [indexPath], with: .automatic)
tableView.endUpdates()
save()
}
}
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。