自定义 UISlider 图像卡住

Posted

技术标签:

【中文标题】自定义 UISlider 图像卡住【英文标题】:Custom UISlider Image Stuck 【发布时间】:2013-09-26 17:44:48 【问题描述】:

为什么滑块图像会停留在加载它的位置?

这是我的代码:

for (UISlider *slider in volumeSlider.subviews) 
    if ([slider isKindOfClass:[UISlider class]]) 
        [slider setMinimumTrackImage:[[UIImage imageNamed:@"sliderMax.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal ];
        [slider setMaximumTrackImage:[[UIImage imageNamed:@"sliderMin.png"] stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0] forState:UIControlStateNormal ];
        [slider setThumbImage:[UIImage imageNamed:@"thumbSlider.png"] forState:UIControlStateNormal];
    

【问题讨论】:

在加载滑块后设置一个初始值可以解决问题吗? resizableImageWithCapInsets: 替换您对已弃用的stretchableImageWithLeftCapWidth 方法的使用。这可能会有所帮助。 不,抱歉。两种解决方案都不起作用 【参考方案1】:

好的,这就是我发现的!要解决此问题,请在 viewdidload 方法的最顶部(或基本上在对滑块进行任何其他操作之前)为您的滑块蒙皮。

完成此操作后,我发现我的自定义滑块表现正常! (在 ios 7.0.2 上测试)。

【讨论】:

【参考方案2】:

我有同样的情况,卡在轨道的右端。这很烦人。但我用这段代码解决了问题:

- (CGRect)trackRectForBounds:(CGRect)bounds 
    return (CGRect) 0,0, bounds.size.width, bounds.size.height;

(我的自定义轨道与滑块视图大小相同)

【讨论】:

以上是关于自定义 UISlider 图像卡住的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UISlider(跟踪图像高度)

UISlider 自定义轨道图像未正确设置

UISlider 自定义图像和拇指高度?

自定义 UISlider 图像无法正常工作

具有居中 UISlider 和两个图像的自定义 UITableViewCell

自定义 UISlider(无需编写自定义代码)