tvOS UIButton .plain 样式,没有模糊背景视图

Posted

技术标签:

【中文标题】tvOS UIButton .plain 样式,没有模糊背景视图【英文标题】:tvOS UIButton .plain style without blurred background view 【发布时间】:2017-09-22 13:07:33 【问题描述】:

UIButtonType.plain 是“没有模糊背景视图的标准系统按钮”。在 tvOS 11 中。但是,当我尝试制作 .plain UIButton 并将其背景颜色更改为红色时,我仍然可以在 UIButton 中看到 VisualEffectView 使红色变暗。如何摆脱模糊的背景视图并获得具有运动效果的真正普通按钮?谢谢。

snapshot

【问题讨论】:

【参考方案1】:

在 tvOS 上对 UIButton 的自定义是有限的,如果不继承 UIButton,您可能无法获得所需的效果。

但是,一种没有子类化的解决方法是使用图像并为您的按钮设置背景图像。

有几个开源库可以满足您的要求。我一直在为我的项目使用并取得巨大成功的一个是: FocusTvButton

【讨论】:

【参考方案2】:

我在我的项目中使用了这个解决方法:

button.titleLabel?.superview?.backgroundColor = .red

使用此方法,您将无法为状态设置不同的颜色。如果您不关心焦点状态的不同背景颜色,这可以帮助您。 否则我认为你应该继承UIButton 并在didUpdateFocuspressesBegan 中设置适当的颜色

【讨论】:

以上是关于tvOS UIButton .plain 样式,没有模糊背景视图的主要内容,如果未能解决你的问题,请参考以下文章

UIButton 在焦点上将图像更改回原始图像(tvOS)

在 Swift (tvOS) 中,如何更改 UIButton 的突出显示和焦点颜色?

自定义按钮样式 (SwiftUI) tvOS

tvos UISegmentedControl 焦点样式不变

如何在 tvOS 中打开 GameCenter

如何在 tvOS 中对按钮焦点执行动作事件