Я пытаюсь на весь день правильно установить значение на слайдере. Это сводит меня с ума.UISlider setValue не работает
Во-первых, эта часть кода работает. Я получаю сообщение от WebSocket (библиотека socketRocket), что я конвертировать плавать, и я установить ползунок в нужное положение
- (void) webSocket:(SRWebSocket *) webSocket didReceiveMessage:(id)message{
float stateValue = [message floatValue];
zoneSlider.value = stateValue;
zoneSlider.alpha = 1;
}
Так что этот код правильно устанавливает значение ползунка (zoneSlider) и делает его видимым, только то, что мне нужно.
Но для первого открытия представления мне также необходимо установить программный код слайдера на значение по умолчанию (по некоторым причинам его настройка непосредственно в инспекторе атрибутов раскадровки не подходит для моей потребности).
Я написал этот код:
float defaultValue = 30.0f;
[zoneSlider setValue:defaultValue animated:NO];
zoneSlider.alpha = 1;
И он устанавливает ползунок до нуля (вверху слева). Я попробовал несколько решений (сделайте float из NSString, чтобы скопировать то, что работает с сообщением webSocket, используя zoneSlider.value = defaultValue и т. Д.).
Я что-то не так?
Спасибо!
PS: Оба слайдера setValue (рабочий и не рабочий) используются, когда сообщение получено webSocket (метод didReceiveMessage). Тем не менее, для нерабочего сообщения отправляется в сокет внутри метода dispatch_async (что я совершенно не знаком с ...). Это может быть быть источником неприятностей, хотя я не вижу причин для этого.
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
while (viewActive == true){
// Pause between refresh
NSDate *future = [NSDate dateWithTimeIntervalSinceNow: 5 ];
[NSThread sleepUntilDate:future];
//Code in this part is run on a background thread
[self sendGetState]; //Then a message is sent and we go to the setValue
}
});
. Это было бы большой помощью для всех остальных, чтобы быть немного более наглядным из того, что вы на самом деле сделали *, чтобы исправить скорее, чем нечто неопределенное, например, «ряд утверждений». –