Обновление текста заголовка раздела UITableView при использовании непрерывного повтора UIStepper - PullRequest
2 голосов
/ 26 марта 2012

У меня есть UITableView с несколькими секциями, каждая из которых имеет несколько ячеек с дискретными UIStepper элементами управления.При нажатии и удерживании UIStepper в каждой ячейке, компаньон UILabel обновляется до текущего значения UIStepper, как требуется.

Это работает нормально: удерживайте нажатой клавишу UIStepper, и это увеличивает общее количество,обновляя UILabel, как это происходит.

Я хочу, чтобы заголовок каждого раздела суммировал текущую сумму со всех ячеек в этом разделе и добавлял это число к тексту заголовка, даваяПользователь может быстро суммировать значения всех ячеек секции UIStepper.

====================
 Section Total: 12
====================
 Cell: 3   | - | + |
--------------------
 Cell: 5   | - | + |
--------------------
 Cell: 4   | - | + |
====================
 Section Total: 9
====================
 Cell: 1   | - | + |
--------------------
 Cell: 2   | - | + |
--------------------
 Cell: 6   | - | + |

Это также работает при использовании вызова [self.tableView reloadData] ;.

Однако он регистрирует только каждое дискретное касание, выполненное приUIStepper;Появляется вызов reloadData, чтобы остановить регистрацию непрерывных касаний.Это означает, что для синхронизации итогового значения в заголовке с растущими значениями в ячейках этого раздела требуется, чтобы пользователь продолжал касаться элемента управления одним касанием за раз, а не нажимал и удерживал.

Есть лиесть ли способ перезагрузить текст заголовка отдельного раздела по всему «циклу», чтобы он отслеживал увеличивающееся значение, когда пользователь держит палец на элементе управления?

1 Ответ

0 голосов
/ 30 апреля 2013

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

  1. Инициализируйте все из них в viewDidLoad и храните их в коллекции.Затем в tableView:viewForHeaderInSection: верните соответствующий экземпляр для этого раздела из коллекции.Этот вариант лучше всего подходит, если вы знаете, сколько разделов у вас будет заранее.

  2. Лениво инициализируйте их в tableView:viewForHeaderInSection: и сохраните их в коллекции по номеру раздела.Если у вас много заголовков и вы не хотите хранить их в памяти, если пользователь не прокручивал их, тогда это ваш лучший выбор.

Когда вам нужно обновить заголовоквытащите его из коллекции и вызовите для него некоторый инкрементный метод;если он виден, он будет обновляться немедленно, а если нет, он будет отображаться с правильным значением при прокрутке.В идеале эти увеличенные значения сохраняются где-то в модельном объекте!

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