任何Modifier可供停止跳动ScrollView的swiftUI?
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) 我有以下代码在点击按钮时显示弹出窗口:
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 的内容中添加一个,那么我会得到这个:
知道为什么会这样吗?
如果我为内容设置了一个固定的框架,它工作正常,但我不想这样做,因为我希望弹出框根据其内容调整大小。
我正在尝试在 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)