动态 UISlider - 图像未显示

Posted

技术标签:

【中文标题】动态 UISlider - 图像未显示【英文标题】:Dynamic UISlider - Image is not showing 【发布时间】:2013-08-29 05:57:42 【问题描述】:

我使用下面的代码动态创建了一个带有图像的 UISlider,但生成的 UI 仅显示默认的 UISlider。请任何人告诉我,为什么图像没有显示在滑块上。 (UISlider 加载在 UIView 类上,该类也是动态创建的)

self.slider = [[UISlider alloc] initWithFrame:CGRectMake(40.0, 0.0, self.frame.size.width * 80.0/100.0, frame.size.height)];
self.slider.minimumValue = minValue;
self.slider.maximumValue = maxValue;
self.slider.backgroundColor = [UIColor clearColor];
[self.slider setThumbImage:[UIImage imageNamed:@"slider_tab.png"]
                  forState:UIControlStateNormal];
[self.slider setThumbImage:[UIImage imageNamed:@"slider_tab.png"]
                  forState:UIControlStateHighlighted];
[self.slider setMinimumTrackImage:[UIImage imageNamed:@"slider_minimum.png"]
                         forState:UIControlStateNormal];
[self.slider setMaximumTrackImage:[UIImage imageNamed:@"slider_maximum.png"]
                         forState:UIControlStateNormal];
self.slider.continuous = NO;
[self.slider addTarget:self action:@selector(SliderChanged:)    forControlEvents:UIControlEventValueChanged];
[self addSubview:self.slider];

提前致谢。

【问题讨论】:

检查一下您的 IBOutlet 连接。 您找到解决方案了吗? 仍然没有找到解决办法...我检查了图像名称,它是正确的 你是否在 Xib 中使用滑块? 它是在 UIView 中以编程方式创建的 【参考方案1】:

我已经执行了你的代码,它工作正常。我认为问题在于您的图像。请检查您的图片名称(区分大小写)。即 .jpg 或 .png

【讨论】:

仍未找到解决方案。我怀疑问题的发生是因为我使用程序创建的父视图和 IB 可能没有正确连接。任何人都可以对此有所了解吗? 这些图片在哪里?即在您的项目文件夹中还是在哪里? 尝试两个不同的图像以获得最小和最大轨道图像 图像仅在项目文件夹中。我注意到的另一件事是, minimum/maximumTrackTintColor 函数也没有效果。 maximumTrackTintColor = [UIColor colorWithRed:1/255.0f green:1/255.0f blue:1/255.0f alpha:1.0f]; 您是否以编程方式创建任何其他滑块,或者您在 xib 中是否有任何其他 UISlider?【参考方案2】:

将 minimumTrackTintColor 属性颜色设置为默认值。 将 maximumTrackTintColor 属性颜色设置为默认值。

它对我有用。

【讨论】:

以上是关于动态 UISlider - 图像未显示的主要内容,如果未能解决你的问题,请参考以下文章

具有清晰背景的 UISlider 拇指图像在其后面显示轨道

使用 UISlider 移动到图像视图

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

图像变化取决于 UISlider 值

如何在 Swift 中使用 UISlider 更改 UIImageView 中的图像

UISlider 设置带角的图像