在SwiftUI中点击watchOS应用程序时如何更改图像

Posted

技术标签:

【中文标题】在SwiftUI中点击watchOS应用程序时如何更改图像【英文标题】:How do I change image when tapped on it watchOS app in SwiftUI 【发布时间】:2021-04-15 15:15:18 【问题描述】:

点击后如何更改图像?

这是我的第一个 ios 应用,更不用说手表应用了。我正在尝试构建一个简单的应用程序,当我点击图像时,它应该更改为下一个图像。到目前为止,我已经这样做了,并且正在显示第一张图片(test1),但是当我点击它时,什么也没有发生。


import SwiftUI

struct ContentView: View 

  var body: some View 
    var imgIndex: Int = 1
    Image("test\(imgIndex)")
      .resizable(resizingMode: .stretch)
      .onTapGesture 
        imgIndex = 2
      
  


struct ContentView_Previews: PreviewProvider 
  static var previews: some View 
    ContentView()
  

仅供参考,我正在为 Apple Watch 构建一个应用程序。

【问题讨论】:

【参考方案1】:

你需要使用@State:

struct ContentView: View 

  @State private var imgIndex: Int = 1

  var body: some View 
    
    Image("test\(imgIndex)")
      .resizable(resizingMode: .stretch)
      .onTapGesture 
        imgIndex = 2
      
  

【讨论】:

以上是关于在SwiftUI中点击watchOS应用程序时如何更改图像的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI:当 List 和 ForEach 嵌入 TabView 时 WatchOS 8.1 中的 NavigationView 错误

如何在 SwiftUI 中的 WatchOS 中实现 handleUserActivity?

在watchOS中使用.listRowBackground时如何将cornerRadius添加到SwiftUI List Cell?

watchOS 上的 SwiftUI 表单:点击手势间歇性失败

使用 SwiftUI 在 WatchOS 中适配 UI

SwiftUI PresentationButton 在 watchOS 上单次使用后停止运行