SwiftUI ButtonStyle scaleEffect 动画按钮位置变化
Posted
技术标签:
【中文标题】SwiftUI ButtonStyle scaleEffect 动画按钮位置变化【英文标题】:SwiftUI ButtonStyle scaleEffect animates button position changes 【发布时间】:2021-05-31 13:14:47 【问题描述】:我们有几个设置了自定义 ButtonStyle 的按钮,它们在单击时缩放和更改这些按钮的 alpha。这些按钮在一个工作表中,可以拖动。使用 scaleEffect 时如何防止按钮的位置被动画化?没有按钮样式没关系,但显然它不会在点击时产生动画。有关问题,请参见 gif。谢谢。
struct ScaleButtonStyle: ButtonStyle
func makeBody(configuration: ButtonStyleConfiguration) -> some View
configuration
.label
.animation(nil)
.scaleEffect(configuration.isPressed ? 0.95 : 1)
.opacity(configuration.isPressed ? 0.8 : 1)
.animation(.linear(duration: 0.2))
【问题讨论】:
【参考方案1】:尝试将动画链接到相关值,例如
.scaleEffect(configuration.isPressed ? 0.95 : 1)
.opacity(configuration.isPressed ? 0.8 : 1)
.animation(.linear(duration: 0.2), value: configuration.isPressed)
【讨论】:
以上是关于SwiftUI ButtonStyle scaleEffect 动画按钮位置变化的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:禁用具有自定义 ButtonStyle 的 NavigationLink 的最佳方法
SwiftUI:自定义按钮无法识别具有清晰背景和 buttonStyle 的触摸
无法使用切换行为来触发SWIFTUI中的.buttonStyle