【问题标题】:UISlider with left-side increment different than right-side increment左侧增量不同于右侧增量的 UISlider
【发布时间】:2015-09-23 05:29:34
【问题描述】:

我正在使用 UISlider 来调整图像的白平衡,它是以 ºK 计算的(尽管根据我对光的理解,我认为它是倒退的?不过……)

如果我将默认值设置为 5000ºK,当我将滑块向左移动时,图像比我向右移动时要蓝得多。为了缓解这种情况,我煞费苦心地创建了一个与右手增量不同的左手增量(左侧正好是右侧的 1/4,因此最小值为 4000ºK,最大值为 9000ºK)。

现在可以了,但滑块不再位于中间:

有没有办法可以调整滑块的范围,使左侧放大 4 倍于右侧?

【问题讨论】:

  • 只需将滑块的范围设置为 0.0 到 1.0。然后根据您的需要使用一个简单的公式将该值转换为所需的范围。
  • Blarg...太简单了!而且实施起来也很痛苦:|

标签: ios objective-c uislider


【解决方案1】:

你可以使用这个公式:

alpha: value of slider (0-1)

a: K value (e.g. 5000)

min: 4000

max: 9000

/// for getting alpha from K value
alpha = ((a - min)*4)/((a - min)*4 + (max - a));

/// for getting K value from alpha
a = (alpha*max - 4*min*(alpha - 1))/(4 - 3*alpha);

这是我自己做的。所以需要更多的测试。

【讨论】:

    猜你喜欢
    • 2017-12-28
    • 2021-03-30
    • 1970-01-01
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多