提问人:jalone 提问时间:11/16/2023 更新时间:11/16/2023 访问量:39
TextField 在 .sheet() 中断 ios17 中的 TabBar 演示文稿 detents
TextField In a TabBar in a .sheet() break presentation detents in ios17
问:
我想在 with 或自定义大小内显示类似 UIPageView 的内容。它似乎适用于 ios16,但不适用于 ios17。sheet
.medium
presentationDetent
为此,我在工作表中嵌入了一个样式。TabView
PageTabViewStyle
它可以正常工作(除了忽略 safeArea 的问题),但似乎如果我在其中嵌入一个 TextField,与哪个嵌套级别无关,它会破坏制动器。工作表将显示全屏(而不是中屏),并且可能会发生奇怪的布局行为。
以下是一些用于重现它的最小代码:
import SwiftUI
struct ContentView: View {
@State var text = "text"
@State var showSheet = false
var body: some View {
VStack {
Button("SHOW SHEET") {
showSheet = true
}
}
.sheet(isPresented: $showSheet) {
TabView {
TextField("Venue name", text: $text, axis: .vertical)
TextField("Venue name", text: $text, axis: .vertical)
}
.tabViewStyle(PageTabViewStyle())
.presentationDetents([.medium])
}
}
}
将文本字段替换为或任何其他视图可以正常工作。Color.green
测试
使用 xcode 15.0 构建
- 问题可在 ios17 模拟器和真实设备上重现
- 在 ios16 模拟器和真实设备上正常工作。
答: 暂无答案
评论
tabViewStyle
TextEditor