【问题标题】:tvos UISegmentedControl focus style not changetvos UISegmentedControl 焦点样式不变
【发布时间】: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 方法中更改背景颜色。

【问题讨论】:

    标签: ios focus highlight uisegmentedcontrol tvos


    【解决方案1】:

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

    label.backgroundColor = segmentedControl.tintColor;
    

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

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

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

    segment.backgroundColor = Color.clear;
    

    【讨论】:

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

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

    yourSegment.backgroundColor = .clear

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 2017-04-11
      • 1970-01-01
      相关资源
      最近更新 更多