SwiftUI:如何让列表视图中的图像与列表项的操作不同?
Posted
技术标签:
【中文标题】SwiftUI:如何让列表视图中的图像与列表项的操作不同?【英文标题】:SwiftUI: how to have image in list view not have same action as list item? 【发布时间】:2021-05-31 14:14:06 【问题描述】:我在视图中有一个列表。在列表中,items
被迭代以填充列表。当您单击每个列表项时,我想导航到另一个视图。
这按预期工作,但我希望在每个列表项中都有一个由圆圈表示的Button
,可以在不导航到第二个视图的情况下独立单击。现在,单击圆圈只会将我带到第二个视图。我怎样才能做到这一点?
var body: some View
NavigationView
List
ForEach(items) item in
NavigationLink(
destination: OtherView(name: "test"),
label:
Text("Navigate")
)
HStack
Image("1")
.resizable()
.frame(width: 32.0, height: 32.0)
Button(action: addItem)
Label("Add Item", systemImage: "circle")
【问题讨论】:
不确定,但我认为您应该将文本、图像和按钮全部放入带有 HStack 的导航链接中。在类似问题中帮助我的一件事是.buttonStyle(PlainButtonStyle())
创建一个RowView(item:item)
,但你的ForEach
里面有什么。每个Item
都有一个RowView
,您可以在其中单独操作。
【参考方案1】:
List
无法做到这一点。您可以在 ScrollView
中使用 VStack
或 LazyVStack
作为替代解决方案
【讨论】:
以上是关于SwiftUI:如何让列表视图中的图像与列表项的操作不同?的主要内容,如果未能解决你的问题,请参考以下文章
navigationBarTitle 与 SwiftUI 中的列表标题重叠
SwiftUI:如何在动态列表或 LazyVStack 中获取视图框架