【问题标题】:UISlider with step like in SettingsUISlider 与设置中的步骤类似
【发布时间】:2014-03-06 19:15:45
【问题描述】:


我正在开发一个 Xcode 项目,我需要创建一个 UISlider 5 个步骤 来对某些内容进行评分。我知道这种滑块本身就存在,因为 Apple 在 Settings > General > Text Size 中使用它。我不能发布图片,但我希望你知道我在说什么。

我在 Google 上搜索过,但一无所获... 感谢您的帮助!

PS:对不起,我的英语不好,但我是法国人

【问题讨论】:

    标签: ios objective-c uislider


    【解决方案1】:

    首先,永远不要仅仅因为它存在于苹果开发的应用程序中就假设某些东西是可用的。这远非真相。可悲的是,他们阻碍了很多事情。

    要解决您的问题,请尝试以下操作(将滑块最小值设置为 0,最大值设置为 5 或您想要的任何值):

    - (void)viewDidLoad 
    {
        [super viewDidLoad];
    
        [slider addTarget:self action:@selector(sliderChanged:) forControlEvents:UIControlEventValueChanged];
    }
    

    这应该允许滑块弹出到 0、1、2、3、4 和 5。(不要忘记用你自己的替换我的变量名)

    希望对您有所帮助,祝您编码愉快。

    - (void)sliderChanged:(UISlider *)mySlider { 
         mySlider.value = round(mySlider.value); 
         self.valueLabel.text = [NSString stringWithFormat:@"%g", mySlider.value]; 
    }
    

    【讨论】:

    • 次要 nitpick - 此代码将允许滑块弹出到 0、1、2、3、4 和 5(假设最小值为 0,最大值为 5)。
    • 哈哈,我写的时候就知道了,但我在工作,只是想给他一个快速的解决方案。谢谢你的准确性先生。 :)
    • 好的,感谢您的帮助!我还有最后一个问题:是否可以像苹果一样添加垂直线来象征价值?
    • 它的设计位怎么样?我的意思是滑块上可见的步骤。是否有快速提示,还是需要一些硬核编码?;)
    • @Noah 你找到设计的解决方案了吗,我也需要像设置一样的设计。
    【解决方案2】:

    从@williamriley 发布的答案开始,启用“弹出”功能后,您可以使用以下代码(插入到.m 文件中)为UISlider 的每个增量设置代码:

    - (IBAction)speedButton
    {
       if(speed.value == 1)
       {
          // insert code here..
       }
    }
    

    您将在.h 文件中创建按钮,并通过值更改分配将其分配给UISlider。对于滑块的每个增量,复制并粘贴此代码 5 次。显然,有更有效的方法可以做到这一点,但这只是我的两分钱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2014-09-13
      相关资源
      最近更新 更多