【发布时间】:2015-05-25 00:32:07
【问题描述】:
预先总结一下我的问题:我正在尝试根据仅知道 UISlider 的持续时间来确定可以在滑块上放置图像的位置,并有一组时间循环遍历,相应地放置图像。
我一直在阅读有关 UISlider 的 Apple Docs,似乎没有本地方法可以根据浮点数组在 UISlider 上添加“刻度线”。 “刻度线”是指滑块上的线条,例如用于将广告放置在洗涤器上的线条。这是一个可视化:
现在,我有一个充满浮点数的数组;根据 UISlider 的值,我将使用浮动来删除刻度线。数组中浮点数的值每次都会不同。我想遍历我的 UISlider 的 .value 属性,相应地删除 UIImages。 UIImage 是我创建的小 png 资产的刻度线。我无法弄清楚的是循环遍历 UISlider 的 .value 属性并根据 UISlider 的未来位置放置 UIImage 背后的逻辑。数组中浮点数的值每次都会不同,所以我不能静态放置它们。有谁知道从哪里开始?我对 Objective-C 编程还是有点陌生。
我知道可以利用检索滑块在屏幕上的起始 X 坐标,如下所示:
- (float)xPositionFromSliderValue:(UISlider *)aSlider;
{
float sliderRange = aSlider.frame.size.width - aSlider.currentThumbImage.size.width;
float sliderOrigin = aSlider.frame.origin.x + (aSlider.currentThumbImage.size.width / 2.0);
float sliderValueToPixels = (((aSlider.value-aSlider.minimumValue)/(aSlider.maximumValue-aSlider.minimumValue)) * sliderRange) + sliderOrigin);
return sliderValueToPixels;
}
也许我可以在 for 循环中添加一个计算来根据该计算放置图像。我只是不太确定从哪里开始......
【问题讨论】:
-
UISlider 没有持续时间属性。你是说价值属性吗?如果是这样,请编辑您的问题。
-
是的,我的意思是持续时间,我的变量的名称是持续时间。 OP 已编辑。
-
另外,滑块的宽度与其最小值或最大值无关。它由滑块的 frame 属性决定。但是,它们无法获取滑块开始和结束的确切位置。
-
@MichaelL 没错,我更新了 OP,其中包含可以用来代替它的潜在代码。
标签: ios objective-c uiimage uislider