Как перебрать цикл for в ячейке табличного представления swift - PullRequest
0 голосов
/ 26 апреля 2018

Я попробовал это, но не сработало Итерирование по всем UITableCells с указанным идентификатором секции Мне нужно просто итерировать цикл for в ячейке, вычислить значение и отобразить в другой метке calc_value или напечатать. Я не знаю, как сделать это. Любая помощь будет отличной! Я получил только значение для ячейки Я вижу ячейку, которая находится внизу, там значение не рассчитывается. когда я прокручиваю вверх, я получаю значение ячейки, но тогда верхнее значение ячейки не может видеть или вычислять.

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{
  let news = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
  func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return news.count
  }

  func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = myTableView.dequeueReusableCell(withIdentifier: "mycellTVC") as! mycellTVC
    cell.lbl.text = news[indexPath.row]

    return cell
  }


  func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
    return 80
  }

  @IBOutlet weak var myTableView: UITableView!

  override func viewDidLoad() {
    super.viewDidLoad()
    myTableView.delegate = self
    myTableView.dataSource = self

  } 
}
 **This is my cell file**
class mycellTVC: UITableViewCell{

  @IBOutlet weak var lbl: UILabel!
  @IBOutlet weak var calculated_value: UILabel!
}

1 Ответ

0 голосов
/ 26 апреля 2018

Основы того, что вы пытаетесь сделать, - это получить значение из источника данных, преобразовать его в число, если необходимо, и затем суммировать их.

Для вашего примера выше, это бы сработало:

let news = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]

let total = news.map({ Int($0)! }).reduce(0) { x, y in
    return x + y
}

print(total) // 55

Чтобы сделать это для корзины покупок, вашим источником данных, скорее всего, будет список продуктов, возможно, что-то вроде:

struct Product
{
    var name: String
    var price: Int
    var quantity: Int
}

let prod1 = Product(name: "Coka Cola", price: 2, quantity: 2)
let prod2 = Product(name: "Bread", price: 1, quantity: 1)
let prod3 = Product(name: "Sweets", price: 2, quantity: 4)

let shoppingCart = [prod1, prod2, prod3]

let total = shoppingCart.reduce(0) { x, y in
    return x + (y.price * y.quantity)
}

print(total) // 13

Это тот же принцип, только немного сложнее. Пока ваша структура данных правильная, она должна быть прямой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...