带有常规文本的 SwiftUI 低不透明度按钮

Posted

技术标签:

【中文标题】带有常规文本的 SwiftUI 低不透明度按钮【英文标题】:SwiftUI low opacity button with regular text 【发布时间】:2021-03-11 10:14:34 【问题描述】:

我正在使用 SwiftUI 构建一个应用程序,但确实遇到了一些不便。我正在使用带有带有文本的导航链接的按钮来导航到不同的页面。我需要圆圈具有低不透明度,以便您仍然可以查看它们,但是当我这样做时,文本也会立即变为低不透明度。如何防止文本改变不透明度(或保持正常不透明度)。

Button(action: 
    print("Floating Button Click")
, label: 
    NavigationLink(destination: QuestionView(bodyPart: bodyPart, caseData: CaseData(bodyPart: bodyPart)))
        Text(String(describing: bodyPart.rawValue))
            .foregroundColor(.white)
            .frame(width: size, height: size, alignment: .center)
    
)
.background(Color.blue)
.opacity(0.5)
.clipShape(Circle())

我已经尝试为文本赋予自己的不透明度,但这并没有做任何事情,因为它仍然会被覆盖。

有没有人对此有解决方案,我期待看到任何答案。

【问题讨论】:

【参考方案1】:

您只需像这样对背景应用不透明度:

.background(Color.blue.opacity(0.5))

而不是整个View,就像这样:

.background(Color.blue)
.opacity(0.5)

【讨论】:

感谢您的解决方案,我自己也想不出这个,但这似乎是一个相当容易解决的问题。我会将其标记为已解决。

以上是关于带有常规文本的 SwiftUI 低不透明度按钮的主要内容,如果未能解决你的问题,请参考以下文章

带有透明文本的 Android 按钮

SwiftUI 列表中的自定义按钮

带有渐变的SwiftUI ScrollView文本

DIV 框透明,里面的文字不透明

Mac 上的 SwiftUI:帮助文本即使在不透明度为零的视图中也始终可见

像android中的常规一样工作的隐形/透明按钮?