Обновление UISlider внутри UITableViewCell - PullRequest
4 голосов
/ 10 августа 2009

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

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

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

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

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

Ответы [ 2 ]

6 голосов
/ 12 августа 2009

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

1 голос
/ 10 августа 2009

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

...