自定义 UISlider 外观

Posted

技术标签:

【中文标题】自定义 UISlider 外观【英文标题】:Customizing UISlider appearance 【发布时间】:2009-07-09 02:42:48 【问题描述】:

我想将滑块的缩略图设置为正常状态,但仍使用默认轨道图像。

所以我这样做:

[theSlider setThumbImage:[UIImage imageNamed:@"my_thumb.png"] 
forState: UIControlStateNormal];

我的图像显示为拇指,但随后默认轨道图像消失了。

您不能只自定义缩略图并保留曲目图像默认吗?

【问题讨论】:

【参考方案1】:

奇怪的是,这似乎是不可能的。

作为一种解决方法,您有几个选择。截屏和提取必要的图形以创建您自己的几乎相同的最小和最大轨道图像应该不会太难。您需要获得圆形边缘和将被拉伸的平坦部分的几个像素。

或者,您可以尝试使用以下技术提取实际图像:Extract UIKit artwork

就个人而言,我不明白为什么不能将自定义图形与默认图形混合搭配,但这似乎是 Apple 实现此控件的方式。

【讨论】:

@pix0r 感谢您的链接,我会试一试。 Apple 的 SDK 充满了惊喜,不是吗 :) 我在文档中没有看到任何内容说如果您自定义一个图像,您必须做所有事情。我将向苹果提交一个错误【参考方案2】:

当您创建 UISlider 时,无论是在 Interface Builder 中还是以编程方式,请务必将 Continuous 变量设置为 YES。 (即[mySlider setContinuous:YES])。设置此变量后,您应该可以使用自己的缩略图。

【讨论】:

感谢您发布此信息。我终于有机会尝试您的解决方法,但由于某种原因,它不适合我。你还有别的事吗? 我自己又试了一次解决方法,但它不再起作用了,很奇怪!为了解决这个问题,我删除了我在 IB 中使用的滑块并添加了另一个,将旧引用附加到新滑块。这行得通,如果您仍然需要它,希望它对您有用。 :)

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

自定义 UIImage 设置为 UIImageRenderingModeAlwaysTemplate 的 UISlider

iOS - 如何以编程方式为控件设置自定义类

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

修改自定义 UISlider

如何创建自定义 UISlider

自定义 UISlider - 增加“热点”大小