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 焦点样式不变的主要内容,如果未能解决你的问题,请参考以下文章