为所选索引在 UISegmentedControl 中着色图像

Tint image in UISegmentedControl for selected index

我有一张 UISegmentedControl 三张图片。

当控件的值改变时我想重新着色所选段的图标。我知道文本是可能的,但我还没有找到更改由图像而不是文本标题组成的分段控件的色调颜色的选项。

显示方式:

它应该如何显示:


上图中使用的图标可以在这里获取:icons8.com

设置图像时使用:

UIImage *image = [[UIImage imageNamed:@"xyz.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];

Swift:

let image = UIImage(named:"xyz.png")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate)

然后就可以设置色调了。

更改 tintcolor 不会更改此处所选片段中的图像颜色。但是你可以在选择段的时候直接改变它的图像

func setImage(_ image: UIImage?, forSegmentAtIndex segment: Int)

并始终使用原始渲染模式 UIImage