繁体   English   中英

如何在不更改当前最小和最大滑块值的情况下转换UISlider值

[英]How do I convert UISlider value without changing current minimum and maximum slider value

我有2个滑杆,两个滑杆的最小值和最大值均设置为0和1。在图片中,它们模拟变化的渐变值,最多可合并300个帧。

在此处输入图片说明

对于第一个滑块,我正确地获得了0-150帧的范围

int selectedFrameCount = 300; int currentSelectedFrameValue = sender.value * (selectedFrameCount/2);

我想知道如何在不更改最小和最大UISlider值的情况下使用第二个滑块获得150-300帧的范围,因为我需要这些值进行单独的计算。

对于单独的功能,我需要根据所选的0-1值将该值从所选的150-300值转换回浮点数。

example: 285 = x * (300/2) + 150;

是不是很简单

int currentSelectedFrameValue = (sender == firstSlider ? 0 : selectedFrameCount/2)
    + sender.value * (selectedFrameCount/2);

您必须将calc想象为一个函数(就是这样,所以您不必想象它:D)

y是您想要的int xsender.vale

y(x) = x * (selectedFrame/2)

如果你想在翻译您的线路y-axisselectedFrame/2你就必须将其添加为q值线性方程y(x) = mx + q

因此,解决方案是

int value = sender.value * (selectedFrame/2) + (selectedFrame/2)

要将int值转换为0-1范围内的浮点值,请使用此

multipliedMaxValue = selectedFrame multipliedSelectedValue = value

multipliedMaxValue : 1 = multipliedSelectedValue : x

如果你想x ,就做

float toRangeValue = (float)multipliedSelectedValue / (float)multipliedMaxValue;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM