我试图在swiftUI中创建粘性页脚,其中屏幕的其他部分是可滚动的,但在页脚中有一个带有按钮和其他元素的视图,应该得到修复。
感谢您的帮助。
5lhxktic1#
如果我理解正确的话,你想做的是垂直堆叠(VStack)1.滚动视图1.另一个VStack(带有Toggle和Button),在底部对齐:
VStack { ScrollView {...} // 1 VStack { // 2 Toggle(...) Button(...) } .frame(alignment: .bottom) }
以你为例:
struct SwiftUIView: View { @State private var checked: Bool = false let text = String(repeating: "blabla ", count: 20) var body: some View { VStack { ScrollView { ForEach((1...100), id: \.self) {_ in Text(text) } } VStack { Toggle(isOn: $checked, label: { Text("I have read...") }) Button("Enter") { // action } .frame(maxWidth: .infinity) .padding(.vertical) .background(Color.red) } .padding() .border(Color.black) .frame(alignment: .bottom) } } }
zte4gxcn2#
从iOS 15.0+、macOS 12.0+、Mac Catalyst 15.0+、tvOS 15.0+、**watchOS 8.0+**可以使用safeAreaInset例如:
struct ContentView: View { var body: some View { VStack { } .safeAreaInset(edge: .bottom, spacing: 0) { footerView } } var footerView: some View { // your content } }
2条答案
按热度按时间5lhxktic1#
如果我理解正确的话,你想做的是垂直堆叠(VStack)
1.滚动视图
1.另一个VStack(带有Toggle和Button),在底部对齐:
以你为例:
zte4gxcn2#
从iOS 15.0+、macOS 12.0+、Mac Catalyst 15.0+、tvOS 15.0+、**watchOS 8.0+**可以使用safeAreaInset
例如: