tvos UISegmentedControl 焦点样式不变

Posted

技术标签:

【中文标题】tvos UISegmentedControl 焦点样式不变【英文标题】:tvos UISegmentedControl focus style not change 【发布时间】:2020-02-15 08:40:42 【问题描述】:

我想更改 UISegmentedControl 在 tvOS 中突出显示时的背景颜色。

正常分段显示如下。

当更改焦点以更改所选片段时显示如下。

UISegmentedControl 聚焦时如何改变白色背景?

我尝试关注一些事情,但没有工作。

1) 创建 UISegmentedControl 的自定义类并在 awakeFromNib

中执行以下代码
[self setBackgroundImage:image forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[self setBackgroundImage:image forState:UIControlStateFocused barMetrics:UIBarMetricsDefault];

2) 覆盖 UISegmentedControl 的 setHighlighted 方法

3) 在 didUpdateFocusInContext 方法中更改背景颜色。

【问题讨论】:

【参考方案1】:

根据我对您问题的理解,您想更改与 UISegmentControl 色调相同的背景颜色。你需要做的就是使用这个:

label.backgroundColor = segmentedControl.tintColor;

如果不尝试,希望这会对您有所帮助:

您只需为其提供背景颜色即可从情节提要中清除。这是由于默认背景选择和默认选择根据主题而发生的。将 segmentControl 背景颜色设置为清除后,您将获得所需的结果。

或者你可以这样做: 尝试在 viewDidLoad 中设置你的 UISegmentcontrol 背景颜色清除,你会得到你的结果。我已经尝试过了,它对我有用。

segment.backgroundColor = Color.clear;

【讨论】:

它不工作。当 Focus segmentControl 当时显示白色覆盖(默认)。我想在它聚焦时从片段中删除那个白色叠加层。 您尝试了所有三种解决方案?因为他们为我工作【参考方案2】:

段控件的背景色很容易清除:

yourSegment.backgroundColor = .clear

【讨论】:

以上是关于tvos UISegmentedControl 焦点样式不变的主要内容,如果未能解决你的问题,请参考以下文章

进阶篇--相机镜头

自定义 UISegmentedControl 样式

UISegmentedControl 自定义/扩展

UISegmentedControl 和 UIPanGestureRecognizer?

遍历 UISegmentedControl 值

如何更改 UISegmentedControl 的字体颜色