Arhn - архитектура программирования

iPhone: UISlider динамически меняет максимальное значение

Скраб UISlider не перемещается, когда я изменяю его свойство maxValue. Я динамически изменяю свойство MaximumValue UISlider B, очищая UISlider A. Поэтому, когда UISlider A изменяется, например, для 1 UISlider B имеет максимальное значение+=1. UISLider B должен автоматически обновлять свою позицию прокрутки, но это не так. Если я затем нажму на скраб UISlider B, он обновится.

Каково решение для этого?

31.03.2011

Ответы:


1

У меня была именно эта проблема: большой палец UISlider не перемещается на дорожке, когда максимальное значение установлено программно, даже если вы явно вызываете setValue. Например:

// Setup:
UISlider *a = [[UISlider alloc] init];
a.minimumValue = 1.00;
a.maximumValue = 100.00;
[a setValue: 50.00];

/* CORRECT: The thumb is in the centre of the track, at position "50.00":

1 --------------------------- () --------------------------- 100
                         a.value == 50
*/ 

// Set maximumValue programmatically:
[a setMaximumValue: 1000.00];

/* INCORRECT: The thumb is still in the centre of the track: position "500.00":

1 --------------------------- () --------------------------- 1000
                         a.value == 50
    |<---- It should be here (!)
*/ 

// Call setValue explicitly, to no avail:
[a setValue: 50.00];

/* INCORRECT: The thumb is still in the centre of the track: position "500.00":

1 --------------------------- () --------------------------- 1000
                         a.value == 50
    |<---- It should be here (!)
*/ 

Единственный способ решить эту проблему (после нескольких часов поиска решения в Интернете, книгах и экспериментов) состоял в том, чтобы изменить значение UISlider, что, по-видимому, заставляет UISlider перерисовываться. Мне это не нравится, но это работает:

[a setValue:a.value+1 animated:NO];
[a setValue:a.value-1 animated:NO];

/* (The thumb is now at position "50.00"):

1 -- () ---------------------------------------------------- 1000
  a.value == 50
*/

Если кто-то знает лучший способ сделать это, я хотел бы прочитать об этом. (-:

13.04.2011

2

Если вы хотите изменить значение ползунка, вам нужно использовать:

- (void)setValue:(float)value animated:(BOOL)animated

maxValue изменяет только верхнее значение того, что может представлять большой палец

31.03.2011
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..