当滑块按钮超过最大值的 60% 时,UISlider 最大轨道图像使用最小轨道图像

Posted

技术标签:

【中文标题】当滑块按钮超过最大值的 60% 时,UISlider 最大轨道图像使用最小轨道图像【英文标题】:UISlider maximum track image using minimum track image when slider button crosses approx 60% of max value 【发布时间】:2013-10-22 10:49:49 【问题描述】:

我正在使用 UISlider,最小和最大图像设置如下,

UIImage *stetchLeftTrack = [[UIImage imageNamed:@"Left.png"] stretchableImageWithLeftCapWidth:14.0 topCapHeight:0.0];
[self._timeSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];

UIImage *stetchRightTrack = [[UIImage imageNamed:@"Right.png"] stretchableImageWithLeftCapWidth:14.0 topCapHeight:0.0];
[self._timeSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];

一切都按预期工作,直到滑块按钮超过最大值的大约 60%。 正如您在屏幕截图中看到的,最小和最大滑块图像都设置为最小图像 (Left.png)。

请帮忙 提前谢谢!!!!

【问题讨论】:

您的问题是什么?看不懂。 我的 minimumTrackImage (Left.png) 是绿色的,而 maximumTrackImage(Right.png) 是不同的颜色。当我的滑块低于总值的 60%(大约)时,滑块的左侧看起来是绿色的,右侧看起来像预期的不同颜色。但是当它超过总值的 60% 时,右侧也会变成绿色(使用 Left.png)。 你设置了最小值和最大值吗? 是的,同时设置滑块按钮移动工作正常.. 你的问题解决了吗? 【参考方案1】:

事实上,我认为问题的根源是不同的,因此您的解决方案有效。

我遇到了同样的问题,当我再次阅读轨道图像的文档时,我注意到可拉伸图像的中间(可拉伸)部分必须是 1 像素宽(在视网膜 2 像素)。我的轨道图像被定义为滑块的完整宽度,左右大写为 20 像素,中间部分为 230 像素...

当我将可跟踪图像更改为 41 像素(左侧 20 像素,中间可拉伸 1 像素,右侧 20 像素)并将 cap insets 设置为 UIEdgeInsetsMake(0, 20, 0, 20) 时,一切正常。

【讨论】:

【参考方案2】:

这有点奇怪,但我终于想通了..

我的 Left.png 尺寸是 20x6(绿色) Right.png 大小为 84x8(白色)

我将 Right.png 大小更改为 20x8 这解决了我的问题

【讨论】:

以上是关于当滑块按钮超过最大值的 60% 时,UISlider 最大轨道图像使用最小轨道图像的主要内容,如果未能解决你的问题,请参考以下文章

React-Native Slider滑竿使用

光滑的滑块 - 当滑块进入下一帧时暂停 YouTube 剪辑

IOS - 当滑块值改变时设置 UILabel Swift

将值限制在范围内(有点)

窗体控件第4单元

修复 jQuery 按钮滑块