我整个下午一直试图在滑块上正确设置一个值。这让我发疯了。
首先,这部分代码正在运行。我从webSocket(socketRocket库)收到一条消息,我转换为float并将滑块设置到适当的位置
- (void) webSocket:(SRWebSocket *) webSocket didReceiveMessage:(id)message{
float stateValue = [message floatValue];
zoneSlider.value = stateValue;
zoneSlider.alpha = 1;
}
因此,此代码正确设置了滑块的值(zoneSlider)并使其可见,正如我所需要的那样。
但是对于第一次打开视图,我还需要以编程方式将滑块设置为默认值(出于某些原因,直接在storyboard属性检查器中设置它不适合我的需要)。
我写了这段代码:
float defaultValue = 30.0f;
[zoneSlider setValue:defaultValue animated:NO];
zoneSlider.alpha = 1;
它将滑块设置为零(左上角)。我尝试过多个解决方案(使用zoneSlider.value = defaultValue等,从NSString中复制一个以复制使用webSocket消息的内容)。
我做错了吗?
谢谢!
PS:当webSocket(方法didReceiveMessage)收到消息时,将使用两个滑块setValue(工作和非工作)。然而,对于不工作的消息,消息被发送到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
}
});
答案 0 :(得分:1)
您是否尝试过更改最大值和最小值?
答案 1 :(得分:0)
我发现了我的问题!我在一个相当长而复杂的系列中犯了一个错误,如果"试验。一个应该是"否则如果"。
新手的错误,我将来的缩进会更加严谨......