按钮叠加层显示在SwiftUI的按钮文本上方

佐根

Button需要一些覆盖物才能获得所需的样式(描边,阴影等)。

但是,这些叠加层将覆盖Button文本。

在此处输入图片说明

视图:

struct ProfileTest: View {
    var body: some View {
        Button(action: {
        }){
            HStack {
                Text("OFFLINE")
                    .font(.custom("Seravek-Bold", size: 25))
                    .fontWeight(.bold)
                    .foregroundColor(Color.blue)
            }
        }.padding(EdgeInsets(top: 12, leading: 15, bottom: 12, trailing: 15))
        .cornerRadius(50)
        .overlay(
            RoundedRectangle(cornerRadius: 50)
                .stroke(Color.black, lineWidth: 1)
        )
        .overlay(
            RoundedRectangle(cornerRadius: 50)
                .fill(Color.red)
                .shadow(color: Color.black.opacity(1), radius: 1)
        )
        .opacity(0.7)
        .padding(.bottom, 100)
        .padding(.bottom, 20)
    }
}

如何调整视图,使蓝色文本显示在背景上方

pawello2222

您可以使用自定义ButtonStyle

  1. 创建自己的形状并在其.overlay(configuration.label)添加
struct CustomButtonStyle: ButtonStyle {
    func makeBody(configuration: Self.Configuration) -> some View {
        configuration.label
            .hidden()
            .padding(EdgeInsets(top: 12, leading: 15, bottom: 12, trailing: 15))
            .cornerRadius(50)
            .overlay(
                RoundedRectangle(cornerRadius: 50)
                    .stroke(Color.black, lineWidth: 1)
            )
            .overlay(
                RoundedRectangle(cornerRadius: 50)
                    .fill(Color.red)
                    .shadow(color: Color.black.opacity(1), radius: 1)
            )
            .opacity(0.7)
            .overlay(configuration.label)
            .padding(.bottom, 100)
            .padding(.bottom, 20)
    }
}

您还可以用configuration.isPressed来自定义按钮按下时的标签行为。

  1. 将其应用于您的Button
struct ContentView: View {
    var body: some View {
        Button(action: {}) {
            HStack {
                Text("OFFLINE")
                    .font(.custom("Seravek-Bold", size: 25))
                    .fontWeight(.bold)
                    .foregroundColor(Color.blue)
            }
        }
        .buttonStyle(CustomButtonStyle())
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Glyphicon 显示在按钮文本上方

来自分类Dev

Android:操作按钮图标始终显示在叠加层中

来自分类Dev

如何在叠加层上方显示元素?

来自分类Dev

如何使文本显示在该引导轮播中的叠加层上方?

来自分类Dev

图像叠加层上的垂直居中按钮

来自分类Dev

将光标置于python中的按钮上方时显示文本

来自分类Dev

在引导程序中的分段按钮上方显示文本

来自分类Dev

叠加层隐藏按钮的主要文字和按钮

来自分类Dev

键盘上方的显示按钮

来自分类Dev

如何在视频代码中添加按钮叠加层

来自分类Dev

叠加层图片按钮不可见(Android)

来自分类Dev

如何在视频标签中添加按钮叠加层

来自分类Dev

Android溢出按钮叠加层/始终可见

来自分类Dev

Android - 如何使屏幕叠加层上的按钮可点击

来自分类Dev

叠加按钮未显示在IE上

来自分类Dev

SwiftUI-显示后可以更改ActionSheet按钮文本吗?

来自分类Dev

页面加载时,按钮显示在上方

来自分类Dev

按钮未在图像上方并排显示

来自分类Dev

在文本形式和提交按钮上方使用PHP / CSS显示消息

来自分类Dev

SwiftUI按钮文本对齐问题

来自分类Dev

在绝对定位的叠加层上方显示固定位置元素的子元素

来自分类Dev

使html按钮显示为文本

来自分类Dev

在文本块旁边显示按钮

来自分类Dev

如果文本存在则显示按钮

来自分类Dev

Javascript 不显示按钮文本

来自分类Dev

视频上的按钮叠加

来自分类Dev

未显示SKSpriteNode叠加层

来自分类Dev

未显示SKSpriteNode叠加层

来自分类Dev

如何在MDL按钮上的某些文本上方包含图标