SwiftUI:处理HStack中按钮之间的空间

如何解决SwiftUI:处理HStack中按钮之间的空间

我正在实现一个警报视图,该警报视图有两个按钮:

enter image description here

Submit一个按钮,而Cancel是另一个按钮,但是可以靠近中心。有控制按钮位置的方法吗?

这是我的实现方式

var body: some View {
    ZStack {
        vstack{
            Text(text)
            TextField("",text: $text,onEditingChanged: {
                self.typing = $0
            },onCommit: {
                self.text = self.text
            })
            .textFieldStyle(RoundedBorderTextFieldStyle())
            HStack {
                Button(action: {
                    
                    
                },label: {
                    Text("Submit")
                })
                Button(action: {
                    
                },label: {
                    Text("Cancel")
                })
                
            }
        }
        .padding()
        .frame(width: screenSize.width * 0.7,height: screenSize.height * 0.3)
        .background(Color(red: 0.9268686175,green: 0.9416290522,blue: 0.9456014037,opacity: 1))
        .clipShape(RoundedRectangle(cornerRadius: 20.0,style: .continuous))
        .offset(y: isShown ? 0 : screenSize.height)
        .animation(.spring())
        .shadow(color: Color(red: 0.8596749902,green: 0.854565084,blue: 0.8636032343,opacity: 1),radius: 6,x: -9,y: -9)
        
    }
}

你们中的任何人都知道如何操纵按钮的分离吗?

解决方法

  1. 您可以在按钮所在的HStack中添加间距:

         HStack(spacing: 20) {
    
  2. 您可以在按钮上添加填充:

             Button(action: {
                 //action
             },label: {
                 Text("Button")
             })
             .padding(.horizontal,20)
    
  1. 您可以设置按钮的框架:

             Button(action: {
                 //action
             },label: {
                 Text("Button")
             })
             .frame(width: 100)
    
  2. 您可以在HStack中添加一个分隔符:

             HStack {
                 Button...
                 Spacer()
                 Button...
             }
    
,

我认为两个按钮之间的垫片会为您提供帮助。在您的HStack中....

HStack {
 
Button(action: {
                        
                        
                    },label: {
                        Text("Submit")
                    })
                    Spacer()
                    Button(action: {
                    
                    },label: {
                        Text("Cancel")
                    })
                    
                }
,

除了上面惊人的答案之外,您还可以使用以下代码设置间隔的确切长度:

HStack {
             Button...
             Spacer().frame(height: 30)
             Button...
}

将框架高度添加到间隔器将控制它尽可能不扩展;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?