小编Jul*_*ert的帖子

如何在 SwiftUI HStack 中隐藏剪切视图

SwiftUI 是否有可能在一行中仅显示尽可能多的(固定大小)视图而不进行裁剪,例如剪切视图的某些部分。

\n

布局示例

\n
 ----------------------------------------- \n|                                         |\n|  -------     -------     -------     -------     -------\n| | VIEW1 |   | VIEW2 |   | VIEW3 |   | VIEW4 |   | VIEW5 |\n|  -------     -------     -------     -------     -------\n|                                         |\n -----------------------------------------\n
Run Code Online (Sandbox Code Playgroud)\n

在此示例中VIEW5应隐藏,因为它相对于父视图完全超出范围。\n这可以通过.clipped().

\n

VIEW4也应该完全隐藏!\n因为如果要显示它,则必须将其切断。\n所有其他视图都应正常渲染。

\n

SwiftUI 布局

\n

最初的尝试存在以下问题:

\n
    \n
  • 由于 的宽度itemView比外部 的宽度大得多VStack,因此前缘未对齐 => \xe2\x98\x91\xef\xb8\x8f解决方案
  • \n
  • \xe2\x9d\x8c即使最后一个视图没有完全显示在屏幕上,它也可能是可见的。应该避免这种情况。
  • \n
\n
 ----------------------------------------- \n|                                         |\n|  -------     -------     -------     -------     -------\n| | VIEW1 |   | VIEW2 …
Run Code Online (Sandbox Code Playgroud)

layout ios swift swiftui swiftui-list

6
推荐指数
1
解决办法
3991
查看次数

SwiftUI:删除后更新 NavigationView (iPad)

我想在 iPad 上删除行后显示空视图(此处:) 。Text("Please select a person.")

目前: iPad 上的详细视图在删除项目后不会更新。 预期:删除所选项目后显示空视图。

struct DetailView: View {
    var name: String
    var body: some View {
        Text("Detail of \(name)")
    }
}

struct MainView: View {
    @State private var users = ["Paul", "Taylor", "Adele"]

    var body: some View {
        NavigationView {
            List {
                ForEach(users, id: \.self) { user in
                    NavigationLink(destination: DetailView(name: user)) {
                        Text(user)
                    }
                }
                .onDelete(perform: delete)
            }
            Text("Please select a person.")
        }
    }

    func delete(at offsets: IndexSet) …
Run Code Online (Sandbox Code Playgroud)

swift swiftui swiftui-navigationlink

5
推荐指数
1
解决办法
757
查看次数