按钮和列表交互修改
Button and List interaction modifications
我正在尝试删除 List
行的 "sectionStyle"。为了实现类似表视图的视图,您将编写以下内容:
List(items, id: \.id) { item in
ItemRow(with: item)
}
如果你想解释每一行的点击事件,你可以将 ItemRow
包装成 Button
:
List(items, id: \.id) { item in
Button(action: rowTapped) {
ItemRow(item: item)
}
}
有趣的是,当List
知道Button
时,它会像tableView的selectionStyle
一样自动给出选择动画。对于我的应用程序,我不想有那个。有没有办法将 List
的 "selectionStyle" 设置为 "none"?
有许多 List 行为,我无法更改。如果您有不同于系统列表视图的特定需求,则构建您自己的列表非常容易。这是我使用过的一个简单示例。
struct MyListView:View {
var body: some View {
ScrollView {
ForEach(items, id: \.id) { item in
VStack {
Button(action: self.rowTapped) {
ItemRow(item: item)
}
Divider()
}
}
}.padding()
}
func rowTapped() {
print("rowTapped")
}
}
struct ItemRow:View {
var item:Item
var body: some View {
HStack {
Text(item.name)
Spacer() // force text to left justify
}
}
}
我正在尝试删除 List
行的 "sectionStyle"。为了实现类似表视图的视图,您将编写以下内容:
List(items, id: \.id) { item in
ItemRow(with: item)
}
如果你想解释每一行的点击事件,你可以将 ItemRow
包装成 Button
:
List(items, id: \.id) { item in
Button(action: rowTapped) {
ItemRow(item: item)
}
}
有趣的是,当List
知道Button
时,它会像tableView的selectionStyle
一样自动给出选择动画。对于我的应用程序,我不想有那个。有没有办法将 List
的 "selectionStyle" 设置为 "none"?
有许多 List 行为,我无法更改。如果您有不同于系统列表视图的特定需求,则构建您自己的列表非常容易。这是我使用过的一个简单示例。
struct MyListView:View {
var body: some View {
ScrollView {
ForEach(items, id: \.id) { item in
VStack {
Button(action: self.rowTapped) {
ItemRow(item: item)
}
Divider()
}
}
}.padding()
}
func rowTapped() {
print("rowTapped")
}
}
struct ItemRow:View {
var item:Item
var body: some View {
HStack {
Text(item.name)
Spacer() // force text to left justify
}
}
}