Обновление UISlider внутри UITableViewCell

У меня есть пользовательский UITableViewCell, содержащий элемент управления UISlider и UILabel, который показывает текущее текстовое значение для положения ползунка. Я хочу обновить метку при перетаскивании ползунка. Вот основные элементы.

cellForRowAtIndexPath: эта процедура принимает данные и обновляет значение ползунка и связанную с ним метку.

sliderValueChanged: эта процедура считывает значение ползунка и обновляет данные. Затем он вызывает [table reloadData], чтобы обновить метку.

Проблема: каким-то образом reloadData прерывает поток обновлений. Если я заменю NSLog вместо reloadData, я получу хороший поток обновлений, показывающий значение ползунка. Пытаясь предотвратить зацикливание, я ввел тесты, чтобы не устанавливать значение ползунка или не вызывать reloadData, если значение не было другим. Это ничего не исправило.

Любая помощь будет принята с благодарностью!


person Voripteth    schedule 10.08.2009    source источник


Ответы (2)


Проблема вызвана [table reloadData], который, похоже, создает новый объект Cell, поэтому обновления того же ползунка не работают. Правильная реализация заключалась в том, чтобы получить указанную ячейку внутри подпрограммы sliderValueChanged и установить оттуда метку. Установите тег для ползунка, чтобы указать строку, а затем вызовите метод, чтобы получить ячейку с путем индекса.

person Voripteth    schedule 12.08.2009
comment
хотел бы увидеть какой-нибудь код по этому поводу, я работаю над тем же самым, если я пойму, что опубликую. - person nickthedude; 23.05.2010

Подобные вещи случались со мной. Перейдите в настройки сборки и найдите компилятор с пометкой «Разрешить вызовы библиотеки с плавающей запятой». Убедитесь, что он отключен. Посмотрим, поможет ли это вам.

person Community    schedule 10.08.2009
comment
Этот флаг отключен в моем коде, и проблема все еще не устранена. - person Voripteth; 10.08.2009