Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 当我们在文本和图像之间切换按钮内容时,如何停止SwiftUI更改固定填充?_Ios_Swiftui - Fatal编程技术网

Ios 当我们在文本和图像之间切换按钮内容时,如何停止SwiftUI更改固定填充?

Ios 当我们在文本和图像之间切换按钮内容时,如何停止SwiftUI更改固定填充?,ios,swiftui,Ios,Swiftui,所以我在屏幕底部有两个按钮,按钮A和按钮B,沿着这条线的某个地方,我需要用文本替换按钮中的图像,所以我们通过改变顶部的Bool来实现 虽然我们应用了相同的修改器,但按钮B的填充会发生变化,UI也会移动,似乎文本要求更多的空间。理想情况:将按钮图像更改为文本时,按钮A和B不应四处移动 import SwiftUI private var showImage: Bool = true struct SwiftUIView: View { var body: some View {

所以我在屏幕底部有两个按钮,按钮A和按钮B,沿着这条线的某个地方,我需要用文本替换按钮中的图像,所以我们通过改变顶部的Bool来实现

虽然我们应用了相同的修改器,但按钮B的填充会发生变化,UI也会移动,似乎文本要求更多的空间。理想情况:将按钮图像更改为文本时,按钮A和B不应四处移动

import SwiftUI

private var showImage: Bool = true

struct SwiftUIView: View {
    var body: some View {
    
      VStack {
        
        Spacer()

        Button(action: {
            print("CLICK")
          }) {
            Image(systemName: "a.circle")
              .modifier(TestButtonModifier())
          }
        .padding(10)
        
        Button(action: {
          print("CLICK")
        }) {
          if showImage {
            Image(systemName: "b.circle")
              .modifier(TestButtonModifier())
          } else {
            Text("B")
              .modifier(TestButtonModifier())
          }
        }
      .padding(10)

      } //: VSTACK
    }
}

struct TestButtonModifier: ViewModifier {
  
  func body(content: Content) -> some View {
    content
      .font(.system(size: 52, weight: .regular))
      .frame(minWidth: 0, maxWidth: .infinity, maxHeight: 100)
      .background(Color.black)
      .padding(2)
      .foregroundColor(Color.white)
  }
}

struct SwiftUIView_Previews: PreviewProvider {
    static var previews: some View {
        SwiftUIView()
    }
}

这是由于
VStack
间距,默认情况下,不同对子视图之间的间距不同,因此请指定一些明确的间距(或完全删除,即设置为零)

struct SwiftUIView:视图{
var body:一些观点{
VStack(间距:0){//
struct SwiftUIView: View {
    var body: some View {
    
      VStack(spacing: 0) {    // << here !!
        // .. other code