【问题标题】:how to change the thumb image in UISwitch in ios7?如何在 ios7 中更改 UISwitch 中的拇指图像?
【发布时间】:2014-02-09 07:31:39
【问题描述】:

我需要在 ios 7 中更改 UISwitch 的 Thumb 图像,我搜索了很多但一无所获。任何建议或代码将不胜感激,以下是我需要的功能。

我需要将默认 UISwitch Thumb 图像更改为我的图像。

提前致谢。

【问题讨论】:

  • 嗨,克里希纳,即使我在我的项目中有同样的要求,你有没有找到任何解决方案?我正在使用 swift 5 提前谢谢。
  • SevenSwitch 不支持拇指图像。它有一些属性,但不能正常工作。

标签: iphone objective-c ios7 uiimageview uiswitch


【解决方案1】:

要在图像中获得类似的东西,您必须自己从头开始创建。

有多种选择。您可以使用一组图像,一张作为背景,一张作为圆形来使用复合视图。

我可能会使用PaintCode 将其绘制为单个视图,然后对其进行编辑以使其具有动态性。

我的博客上有一个这样做的例子...http://www.oliverfoggin.com/paint-code-slider/

【讨论】:

    【解决方案2】:

    你可以通过一个棘手的方法来做到这一点。

    [switchControl setThumbTintColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"Thumb.png"]]];
    

    Thumb.png 的大小应正确。据我说,它的视网膜屏幕约为 50X50。 请注意,您不能更改开关的大小。那就是它不能比它的实际尺寸大。

    如果你想要一个可以改变大小的控件,你需要创建自己的控件

    【讨论】:

    • 我使用了您的代码..它更有用,但不完整...因为,我正在获取图像的左上角(仅)拇指..
    • 那是我说的有点棘手。使用 50X50 或其周围大小的图像。否则创建一个自定义控件
    【解决方案3】:

    我知道这是一个老问题,但以防万一其他人来寻找解决方案,我想出了一种方法来做到这一点,只是稍微有点 hacky。

    您可以使用以下序列访问用于拇指的图像视图:

    (mySlider.subviews.first?.subviews.last?.subviews.last as? UIImageView)
    

    这意味着您可以通过以下方式将拇指图像设置为您想要的任何自定义图像:

    (mySlider.subviews.first?.subviews.last?.subviews.last as? UIImageView)?.image = UIImage(named: "myCustomImage")
    

    现在这里是 hacky 部分 - 默认图像视图不是一个纯色图像,它是一个具有透明背景和偏离中心的纯色圆圈的图像。因此,如果您希望您的拇指图像与默认拇指图像的大小和位置相匹配,则您的图像需要与此屏幕截图相匹配(仅就圆圈的位置而言 - 图像的大小无关紧要):

    图像的灰色部分应该是透明的,白色部分应该是你想要的任何东西。然后使用上面的代码设置图片就可以了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 2013-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多