swift - 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
}
解决方案
我不认为问题出在动画中,因为它应该可以工作
像这个例子一样编译和工作
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 += 1
为sliderValue += CGFloat(1)
推荐阅读
- dropbox - IFTTT,将图像从 Dropbox 发送到 Telegram
- android - 协程 CancellationException 预期行为
- java - Mockito findByIdOrNull 问题
- python - Catboost没有获得参数数量
- r - 使用 ggplot2 自定义维恩重叠区域的颜色
- ruby-on-rails - 如何在 Rails 中从不同模型呈现表单
- c - 添加初始化的静态变量时,为什么 .bss 大小会减小?
- java - Java WebApp 不断返回相同的结果
- html - 如何在网站中显示许多 svg(加载许多 svg 的更好方法)
- java - Spring boot 项目生成问题