如何更新按钮图像,即`Image(SystemName)` 按下 swiftUI

Posted

技术标签:

【中文标题】如何更新按钮图像,即`Image(SystemName)` 按下 swiftUI【英文标题】:How would one update Button Image I.e. `Image(SystemName)` when pressed swiftUI 【发布时间】:2021-05-31 08:52:58 【问题描述】:

所以我是 Swift 的新手,这可能是一个相当愚蠢的问题。但是,我正在寻找一种在用户按下按钮时更新按钮Image(systemName) 的方法。我在网上找到了一些例子,但我很难掌握UIButtonButton 的概念。

我的当前按钮

// lock State (Set in struct ContentView: View)
@State var isViewLocked:Bool = false

// View Lock Button
Button(action: 
    isViewLocked.toggle()
, label: 
    Image(systemName: "lock")
        .font(.system(size: 25,
            weight: .regular,
            design: .default))
        .foregroundColor(selectedIndex == number ? Color(.systemBlue) : Color(UIColor.lightGray))
)

提前致谢。

【问题讨论】:

【参考方案1】:

没关系,我想通了。 ?

// lock State (Set in struct ContentView: View)
@State var isViewLocked:Bool = false

// View Lock Button
Button(action: 
    self.isViewLocked.toggle()
, label: 
    Image(systemName: self.isViewLocked ? "lock.slash" : "lock")
        .font(.system(size: 25,
            weight: .regular,
            design: .default))
        .foregroundColor(selectedIndex == number ? Color(.systemBlue) : Color(UIColor.lightGray))
)

【讨论】:

不需要self.isViewLocked == true 只需使用self.isViewLocked ? "lock.slash" : "lock" 没错,我已经更新了我的答案。 +1

以上是关于如何更新按钮图像,即`Image(SystemName)` 按下 swiftUI的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 中检查按钮图像

更新整个项目的导航栏后退按钮图像

如何将图像垂直对齐到某些文本第一行的中心?

如何在 Windows Phone 8.1 的列表视图中更新 <image> 的图像

如何在单击并再次在 Windows Phone 中释放时更改按钮图像

上传时如何裁剪图像?