如何移除 UISlider 的预填充

Posted

技术标签:

【中文标题】如何移除 UISlider 的预填充【英文标题】:How To Remove pre - Fill of UISlider 【发布时间】:2013-12-27 07:24:36 【问题描述】:

如果 UISlider. 其他一切正常,除了当滑块拇指处于其最小位置时,它根本不应该显示最小轨道图像。

我的 iPad 模拟器的屏幕截图如下:-

在这张图片中,拇指旋钮处于其最小位置,但它仍然显示不应该的“绿色最小轨道图像”

有什么办法可以解决这个问题吗?

我的 viewDidLoad 方法中的代码是:-

SLDR.continuous=NO;

[SLDR setMinimumTrackImage:[[UIImage imageNamed:@"U14.png"] stretchableImageWithLeftCapWidth:7 topCapHeight:0]forState:UIControlStateNormal];

[SLDR setMaximumTrackImage:[[UIImage imageNamed:@"U31.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0] forState:UIControlStateNormal];

[SLDR setThumbImage:[UIImage imageNamed:@"U9.png"] forState:UIControlStateNormal];
[SLDR setThumbImage:[UIImage imageNamed:@"U9.png"] forState:UIControlStateHighlighted];

请告诉我我错过了什么,提前谢谢:)

【问题讨论】:

【参考方案1】:

标准滑块 thumbImage 位于滑块顶部,因此它覆盖了最小位置。你的在上面,所以末端暴露了。尝试通过水平翻转最大图像来创建新图像。然后像这样向滑块添加一个 valueCahnged...

- (IBAction)sliderValueChanged:(id)sender

if (SLDR.value == 0) 
    [SLDR setMinimumTrackImage:[[UIImage imageNamed:@"U31-flipped.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0]forState:UIControlStateNormal];
 else 
    [SLDR setMinimumTrackImage:[[UIImage imageNamed:@"U14.png"] stretchableImageWithLeftCapWidth:5 topCapHeight:0]forState:UIControlStateNormal];

希望这会有所帮助!

【讨论】:

以上是关于如何移除 UISlider 的预填充的主要内容,如果未能解决你的问题,请参考以下文章

iOS 如何从 UISlider 中删除发光/阴影

自动滚动 UISlider

删除 UISlider 旋钮或快速更改图像

UISlider 突出显示状态,拇指宽度与正常不同

需要将使用 Interface Builder 创建的 UISlider 连接到非事件代码

UISlider如何垂直放置?