相关疑难解决方法(0)

如何在 SwiftUI 中禁用 ScrollView Bounce

任何Modifier可供停止跳动ScrollViewswiftUI

struct RoomDetailsView: View {

    var body: some View {
        ScrollView(showsIndicators: false) {
            Image("test")
            Text("Hello Text")
            ...
            ...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过下面的代码,但它对我不起作用。看起来它已被弃用

ScrollView(alwaysBounceVertical: true) {
       Image("test")
       Text("Hello Text")
       ...
       ...
}
Run Code Online (Sandbox Code Playgroud)

scrollview bounce swiftui

15
推荐指数
4
解决办法
6152
查看次数

iPad 弹出窗口中的 NavigationView 在 SwiftUI 中无法正常工作

我有以下代码在点击按钮时显示弹出窗口:

struct ContentView: View {

    @State private var show = false

    var body: some View {

        Button("Open") {
            self.show.toggle()
        }.popover(isPresented: $show, content: {
//            NavigationView {
                ScrollView {
                    ForEach(0...10, id: \.self) {_ in
                        Text("Test popover ...")
                    }.padding()
                }
//            }
        })

    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

如果我NavigationView在 popover 的内容中添加一个,那么我会得到这个:

在此处输入图片说明

知道为什么会这样吗?

如果我为内容设置了一个固定的框架,它工作正常,但我不想这样做,因为我希望弹出框根据其内容调整大小。

ipad ios swiftui

9
推荐指数
2
解决办法
929
查看次数

在 SwiftUI 中根据文本高度自动调整视图高度

我正在尝试在 SwiftUI 中创建一个视图,其中左侧图像的背景应根据右侧文本的高度垂直缩放。

我尝试了很多不同的方法,从GeometryReader.layoutPriority(),但我没有设法让它们中的任何一个工作。

当前状态:

当前状态

期望状态:

在此处输入图片说明

我知道我可以通过.frame(100)对我发布的示例进行硬编码来模仿该功能,但是由于右侧的文本是动态的,所以这是行不通的。

这是屏幕截图中视图的完整代码:

import SwiftUI

struct DynamicallyScalingView: View {
    var body: some View {
        HStack(spacing: 20) {
            Image(systemName: "snow")
                .font(.system(size: 32))
                .padding(20)
                .background(Color.red.opacity(0.4))
                .cornerRadius(8)

            VStack(alignment: .leading, spacing: 8) {
                Text("My Title")
                    .foregroundColor(.white)
                    .font(.system(size: 13))
                    .padding(5)
                    .background(Color.black)
                    .cornerRadius(8)
                Text("Dynamic text that can be of different leghts. Spanning from one to multiple lines. When it's multiple lines, the background on the left should scale vertically")
                    .font(.system(size: 13))
            }
        }
        .padding(.horizontal)
    } …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

4
推荐指数
2
解决办法
1950
查看次数

标签 统计

swiftui ×3

ios ×2

bounce ×1

ipad ×1

scrollview ×1

swift ×1