SwiftUI-在编辑模式下而不使用onDelete时如何避免列表中的行缩进?(附带代码/视频)

格雷格

在SwiftUI中,当我进入编辑模式而不使用onDelete时,如何避免行内容缩进列表中?这是当前发生这种情况时我的行内容缩进的方式,好像“删除”按钮将显示在左侧,但是我没有使用onDelete,所以那里没有按钮。

GIF动画

在此处输入图片说明

代码摘录在这里:

var body: some View {
    VStack{
        List() {
            ForEach(gcTasks) { gcTask in
                HStack {
                    GCTaskRow(withGcTask: gcTask, haha: "")
                }
            }
            // .onDelete(perform: self.deleteTask)   // NOTE: HAVE REMOVED
            .onMove(perform: self.move)
        }
    }
    .environment(\.editMode, listInEditMode ? .constant(.active) : .constant(.inactive))
}

背景-实际上一直想一直处于编辑模式,即总是可以上下拖动行,但是永远不会使用Delete,因此要查看onDelete的所有痕迹,在这种情况下是自动缩进。

更新:另一个示例(操场)如何发生不必要的缩进:

import SwiftUI
import PlaygroundSupport

let modelData: [String] = ["Eggs", "Milk", "Bread"]

struct ListTestNoDelete: View {
    private func move(from uiStartIndexSet: IndexSet, to uiDestIndex: Int) {
        print("On Move")
    }
    var body: some View {
        NavigationView {
            VStack {
                List {
                    ForEach(modelData, id: \.self) { str in
                        Text(str)
                    }
                    .onMove(perform: self.move)
                }
                .environment(\.editMode, .constant(.active))
                .navigationBarTitle( Text("Test") )
            }
        }
    }
}


let listTest = ListTestNoDelete()
PlaygroundPage.current.liveView = UIHostingController(rootView: listTest)

在此处输入图片说明

卡斯珀·赞伯根(Casper Zandbergen)

也许不是很好的解决方法,但是您可以将列表扩展到左侧。

List {
    // ...
}
// .padding(.leading, self.isEditing == .inactive ? 0 : -39)
.padding(.leading, self.isEditing ? -45 : 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不使用onDelete(perform :)的情况下从子视图中删除SwiftUI中的列表项?

来自分类Dev

如何在不使用swiftUI附带的幻灯片进行删除的情况下创建自定义删除按钮我不使用列表,仅使用foreach循环

来自分类Dev

swiftUI列表中的onDelete()函数处理程序如何工作?

来自分类Dev

SwiftUI列表行布局

来自分类Dev

编辑模式下的SwiftUI列表行不允许Buttons动作/ NavigationLinks起作用?

来自分类Dev

列表中的SwiftUI NavigationLink

来自分类Dev

SwiftUI从列表中删除行

来自分类Dev

SwiftUI:无法在TabView中访问编辑模式

来自分类Dev

如何从SwiftUI中的列表获取屏幕行?

来自分类Dev

在SwiftUI,SwiftUI中调整多个vstack宽度

来自分类Dev

如何使用SwiftUI的ToolbarItemGroup?

来自分类Dev

SwiftUI-嵌套列表

来自分类Dev

筛选器列表SwiftUI

来自分类Dev

列表的SwiftUI SystemColors

来自分类Dev

搜索列表(JSON)SwiftUI

来自分类Dev

多列SwiftUI列表

来自分类Dev

列表内的SWiftUI anchorPreference

来自分类Dev

SwiftUI过滤列表

来自分类Dev

SwiftUI使用CoreData从列表编辑项目

来自分类Dev

如何从SwiftUI按钮继承

来自分类Dev

SwiftUI:如何实现SwipGesture?

来自分类Dev

如何从SwiftUI调用UIViewController

来自分类Dev

在SwiftUI中制作标签

来自分类Dev

在SwiftUI中自下而上滚动

来自分类Dev

在SwiftUI中堆叠视图

来自分类Dev

SwiftUI中的ImagePicker

来自分类Dev

SwiftUI中的Swift @propertyWrapper

来自分类Dev

SwiftUI中的数据关联

来自分类Dev

swiftui中的EvaluationJavaScript