【问题标题】:UISlider incrementsUISlider 增量
【发布时间】:2010-03-16 21:37:07
【问题描述】:

我有一个 UISlider,它的滑动范围从 0.0 到 1.0。

开箱即用,滑块允许用户以非常多的小数位数滑动,但我只希望我的用户能够为滑块的每个向上或向下“滴答”增加/减少 0.001。

可以这样设置吗?

谢谢!

【问题讨论】:

    标签: iphone uislider


    【解决方案1】:

    这个滑块有多大?即使你在横向模式下它跨越了屏幕的整个宽度,0.001 的变化也只有大约半个像素。听起来您只需要将滑块的值(在幕后)四舍五入到您所追求的精度。

    【讨论】:

      【解决方案2】:

      如果是非常简单的事情呢,例如: 一个 3 选项滑块(值为 {0, 1, 2}),连接了一个 IBAction 和一个 IBOutlet。

      -(float)roundValue:(float)value{
      
          if(value <=   0.5) return 0;
          if(value <=   1.5) return 1;
          return 2;
      }
      
      -(IBAction)mySliderChanged:(id)sender {
      
          float value = mySliderOutlet.value; // retrieve value via IBOutlet
          value = [self roundValue:value];
      
          // Update the slider to 'snap' in final position
          [[self mySliderOutlet] setValue:value animated:YES];
      }
      

      【讨论】:

        【解决方案3】:

        这应该可以解决问题:

        - (void) getSliderValue:(UISlider *)paramSender{
            float increment = 0.001;
            float newValue = paramSender.value /increment;
            paramSender.value = floor(newValue) * increment;
            NSLog(@"Current value of slider is %f", paramSender.value);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-15
          • 2013-08-20
          相关资源
          最近更新 更多