Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top