Лучшим способом сделать это может быть размещение всего в пределах UITableView
, который заполнен набором объектов, мы назовем этот объект Item
. Каждый Item
может иметь такие свойства, как name
, quantity
, squareFootPerUnit
, estCost
, totalSquareFoot
и totalCost
.
Я бы тогда создал UITableViewCell с тремя UITextFields (quantity
, estCost
, squareFootPerUnit
), которые можно редактировать, и тремя метками (name
, totalSquareFoot
и totalCost
). Сделайте так, чтобы UITableViewCell
соответствовал UITextFieldDelegate
для захвата входных данных от пользователя.
В tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath)
заполните UITableViewCells
данными из ваших Item
объектов. Получив данные quantity
, estCost
, squareFootPerUnit
из UITextFields
, выполните вычисления и присвойте ответы свойствам totalSquareFoot
и totalCost
в объекте Item
и перезагрузите таблицу .
Существует несколько способов присвоения вычисленных значений вашим Item
объектам. Обычно я использую замыкание (Swift) / блок (Objective-C) как свойство в UITableViewCell
, которое я затем вызываю всякий раз, когда вычисление завершено. Передайте рассчитанные ответы в качестве параметров.
Преимущества UITableView
- Нет необходимости обрабатывать любые сложные координаты x & y, которые могут у вас возникнуть, если сервер вернет вам несколько
Item
данных.
- Проще поддерживать ваши
Item
данные с помощью объектов.
- Нет необходимости использовать
tag
объекты на представлениях или сохранять tag
имен.