【问题标题】:How to move slider when textfield has been changed?更改文本字段后如何移动滑块?
【发布时间】:2012-07-02 15:39:26
【问题描述】:

现在,当我移动滑块时,我的文本字段的值正在发生变化。我也需要向后工作,改变文本字段值,滑块移动。

我的代码:

- (void)sliderChanged:(UISlider *)sender {

    self.slider.valueChangedHandler = ^(id sender) {
    self.aleField.text = [NSString stringWithFormat:@"%.f", [(UISlider *)sender value]];
};

}

编辑

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
   slider.value = [aleField.text floatValue];

    NSUInteger newLength = [aleField.text length] + [string length] - range.length;
    return (newLength > 2) ? NO : YES;

}

【问题讨论】:

    标签: ios xcode slider textfield


    【解决方案1】:

    创建文本字段后,添加:

    [self.textField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
    

    然后有以下方法:

    - (void)textFieldDidChange:(UITextField*)sender {
        //Assuming slider is a property
        slider.value = [sender.text floatValue];
    }
    

    我引用了https://stackoverflow.com/a/7010676/391040https://stackoverflow.com/a/4711136/391040

    【讨论】:

      【解决方案2】:

      要在键入时执行此操作,请实现文本字段委托

      - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
          NSCharacterSet *numberSet = [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet];
          NSString *filtered = [[string componentsSeparatedByCharactersInSet:numberSet] componentsJoinedByString:@""];
          BOOL basicTest = [string isEqualToString:filtered];
          if (basicTest) {
              slider.value = [aleField.text floatValue];
          }
          return basicTest;
      }
      

      这也将允许您让用户只插入数字。

      要将值反映到滑块:

      slider.value = [textField.text floatValue];
      

      【讨论】:

      • 当我输入例如数字 3 时,它会自动在 3 之前放置一个零
      • 零是滑块的最小值。例如,如果我输入 1,它会在我输入的数字之前输入 1
      • 没有任何改变。例如,当我放数字 50.. 滑块移动到 5... 当我放 99.. 滑块移动到 9... 但如果我放 999... 然后滑块移动到 99。
      • 你可以在 NSCharacterSet 中添加一个点来实现浮动
      • 与你的问题无关。如果你想要浮点值而不仅仅是整数,你可以添加它。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多