首页 > 解决方案 > SwiftUI,在 .padding 上使用带有布尔值的尾随

问题描述

SwiftUI 的新手。我想.slide使用以下方式执行动画.padding

我想知道,为什么我不能使用这段代码来使用.trailing:

.padding(.trailing, self.showDetails ? 1000 : 100)

'? 中的结果值 :' 表达式具有不匹配的类型 'Int' 和 'CGFloat'

PS:这就是我最初执行动画的方式:

Image("close_x").onTapGesture {                   
      withAnimation(.spring()) {
         showDetails.toggle()
      }

      sliderValue +=  1

}

标签: swiftswiftui

解决方案


我不认为问题出在动画中,因为它应该可以工作

像这个例子一样编译和工作

    struct CustomView: View {
   
    @State var showDetail: Bool = false
    var body: some View {
      Image(systemName: "plus")
        .onTapGesture {
            withAnimation(.spring()){
            showDetail.toggle()
            }
        }
        .padding(.trailing, showDetail ? 10: 100)
    }
}

我认为您遇到的问题更多在于sliderValue。滑块需要浮点数,尝试替换sliderValue += 1sliderValue += CGFloat(1)


推荐阅读