Обновление UISlider внутри UITableViewCell
-
12-09-2019 - |
Вопрос
У меня есть собственный UITableViewCell, который содержит UISlider
элемент управления и UILabel, который показывает текущее текстовое значение для положения ползунка.Я хочу обновить метку при перетаскивании ползунка.Вот основные элементы.
ячейкаForRowAtIndexPath:Эта процедура принимает данные и обновляет значение ползунка и связанную с ним метку.
слайдерValueChanged:Эта процедура считывает значение ползунка и обновляет данные.Затем он вызывает [table reloadData], чтобы метка обновилась.
Проблема:Каким-то образом reloadData прерывает поток обновлений.Если я заменю NSLog вместо reloadData, я получу хороший поток обновлений, показывающий значение ползунка.Пытаясь предотвратить зацикливание, я ввел тесты, чтобы не устанавливать значение ползунка и не вызывать reloadData, если значение не отличается.Это не исправило ситуацию.
Любая помощь будет принята с благодарностью!
Решение
Проблема вызвана тем, что [table reloadData] создает новый объект Cell, поэтому обновления того же ползунка не работают.Правильная реализация заключалась в том, чтобы получить указанную ячейку внутри процедуры слайдераValueChanged и установить оттуда метку.Установите тег на ползунок, чтобы указать строку, а затем вызовите метод, чтобы получить ячейку с индексным путем.
Другие советы
Со мной случались подобные вещи.Перейдите к настройкам сборки и найдите компилятор с пометкой «Включить вызовы библиотеки с плавающей запятой».Убедитесь, что он отключен.Посмотрите, поможет ли это вам.