Могу ли я сделать промежуточный итог с помощью UILabels? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть два UILabels , которые добавляют точки при нажатии на разные объекты, они сохраняют отдельные промежуточные итоги. Я хотел посмотреть, смогу ли я сделать промежуточную сумму этих двух ярлыков, где они суммируются и умножаются на другое фиксированное число. Или даже просто суммирует их, если другие вычисления одновременно невозможны :-)

Итак, у меня есть:

@IBOutlet weak var label: UILabel!
@IBOutlet weak var label2: UILabel!
@IBOutlet weak var result: UILabel!

То, что я пытаюсь сделать, это продолжать работать total / sum ( result ) of label и label2 по мере изменения этих чисел, кроме того, я хотел бы провести расчет одновременно ... ie: метка умножается на число 2 PLUS label2 умножается на число 10, и результат заполняется в метке результата без нажатия кнопки, чтобы он просто нарастающий итог. (ie: (label x 2) + (label2 x 10) = result)

label и label2 в настоящее время увеличивают свое значение при нажатии кнопок, поэтому я ' m в надежде, что других кликов не будет, пока подсчитывается промежуточная сумма.

Я пробовал много вещей, но пока не обнаружил, что это работает, так что я надеюсь, что здесь мне помогут. Спасибо.

1 Ответ

0 голосов
/ 08 мая 2020

вы можете добавить наблюдателей для метки / метки2 и вычислить в режиме ObservationValue fun c

{
   label.addObserver(self, forKeyPath: "text", options: .new, context: nil)
   label2.addObserver(self, forKeyPath: "text", options: .new, context: nil)
}

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {

   result.text = ...
}
...