gpt4 book ai didi

ios - 如何在 iOS 13 的 UISegmentedControl 中更改段的颜色?

转载 作者:IT王子 更新时间:2023-10-29 08:03:12 32 4
gpt4 key购买 nike

UISegmentedControl 在 iOS 13 中有了新的外观,并且改变分段控件颜色的现有代码不再像以前那样有效。

在 iOS 13 之前,您可以设置 tintColor,它将用于分段控件周围的边框、分段之间的线条以及所选分段的背景颜色。然后,您可以使用带有 titleTextAttributes 的前景色属性更改每个片段的标题颜色。

在 iOS 13 下,tintColor 什么都不做。您可以设置分段控件的backgroundColor 来改变分段控件的整体颜色。但是我找不到任何方法来改变用作所选片段背景的颜色。设置文本属性仍然有效。我什至尝试设置标题的背景颜色,但这只会影响标题的背景,不会影响所选片段的其余部分的背景颜色。

简而言之,在iOS 13中如何修改UISegmentedControl当前选中segment的背景色?有没有合适的解决方案,使用公共(public) API,不需要深入研究私有(private) subview 结构?

iOS 13 中没有针对 UISegmentedControlUIControl 的新属性,UIView 中的任何更改都不相关。

最佳答案

从 iOS 13b3 开始,UISegmentedControl 上现在有一个 selectedSegmentTintColor

要更改分段控件的整体颜色,请使用其 backgroundColor

要更改所选段的颜色,请使用 selectedSegmentTintColor

要更改未选择的段标题的颜色/字体,请使用状态为 .normal/UIControlStateNormalsetTitleTextAttributes

要更改所选片段标题的颜色/字体,请使用状态为 .selected/UIControlStateSelectedsetTitleTextAttributes

如果您使用图像创建分段控件,如果图像创建为模板图像,则分段控件的 tintColor 将用于为图像着色。但这有一个问题。如果将 tintColor 设置为与 selectedSegmentTintColor 相同的颜色,则图像将不会在所选片段中可见。如果将 tintColor 设置为与 backgroundColor 相同的颜色,则未选中片段上的图像将不可见。这意味着您的带图像的分段控件必须使用 3 种不同的颜色才能使所有内容可见。或者您可以使用非模板图像而不设置 tintColor

在 iOS 12 或更早版本中,只需设置分段控件的 tintColor 或依赖应用的整体色调。

关于ios - 如何在 iOS 13 的 UISegmentedControl 中更改段的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436559/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com