滑块价值iOS

时间:2011-02-08 08:04:49

标签: ipad ios ios4 uislider

我正在尝试将滑块中的值作为套接字通信中的字符串发送到乐器。目前,我能够在滑块上找到的唯一资源更新标签,但滑块的值未在其他地方使用。理想情况下,我想在我的View Controller中使用以下代码,并将send frequency命令中的值1000替换为sider的值而不是硬编码1000到方法调用中:

-(IBAction)Sine {

    //[myNetwork sendCommand:@"*CLS\n"];
    //[myNetwork sendCommand:@"*RST\n"];
    [myNetwork sendCommand:@"SOURCE1:FUNCTION SIN\n"];
    [myNetwork sendCommand:@"SOURCE1:FREQUENCY 1000\n"];
    [myNetwork sendCommand:@"SOURCE1:VOLT:UNIT VPP\n"];
    [myNetwork sendCommand:@"SOURCE1:VOLT 2\n"];
    [myNetwork sendCommand:@"SOURCE1:VOLT:OFFSET 0\n"];
    [myNetwork sendCommand:@"OUTPUT1:LOAD 50\n"];
    [myNetwork sendCommand:@"OUTPUT1 ON\n"];
    [myNetwork sendCommand:@"OUTPUT2 ON\n"];
}

以下是sendCommand()的方法定义:

//sends command to the instrument and reuturns true if successful
-(BOOL)sendCommand:(NSString *)command {

    char *com = [command UTF8String];
    int comLength = strlen(com);

    //send the string to the server
    if (send(sockNum, com, comLength, 0) != comLength) {
        return FALSE;
    }
    return TRUE;
}

这是.h文件中的原型:

- (BOOL)sendCommand:(NSString *)command; //send command to instr

1 个答案:

答案 0 :(得分:3)

UISlider有一个属性value,它将当前值作为float返回。如果您的仪器需要整数,您可能需要先转换它。默认情况下,该值的范围为0到1,但您可以使用滑块的minimumValuemaximumValue属性覆盖该值。

在Sine方法中,只需获取滑块的值并将其添加到SOURCE1:FREQUENCY命令:

int frequency = (int) frequencySlider.value;
[myNetwork sendCommand:[NSString stringWithFormat:@"SOURCE1:FREQUENCY %d\n", frequency]];