struct TestView: View {
var body: some View {
NavigationView {
VStack(alignment: .leading, spacing: 0) {
HStack(spacing: 0) {
Text("something here")
Spacer()
}
.frame(height: 50)
.background(Color.red)
List {
ForEach(0..
Проблема с ней заключается в том, что индикатор вертикального прокрутки показал в списке, начинающийся с неправильной позиции, как на скриншоте ниже. Похоже, что дополнительная накладка добавляется сверху. Есть ли способ исправить в Swiftui? Я проверил, что какой -то обходной путь, подобный ниже, с uikit Works, но он далеко не является правильным решением. Есть ли лучший способ сделать это? Я ищу решение, которое работает на iOS 15, если это имеет какое -либо значение. < /P>
.onAppear(perform: {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1, execute: {
let window = (UIApplication.shared.connectedScenes.first as? UIWindowScene)?.windows.first
let views = window?.recursiveSubviews()
let scrollViews = views?.filter({ $0 is UIScrollView }) as? [UIScrollView]
scrollViews?.forEach({ $0.verticalScrollIndicatorInsets = .init(top: 1, left: 0, bottom: 0, right: 0) })
})
})
[...]
extension UIView {
func recursiveSubviews() -> [UIView] {
return subviews + subviews.flatMap({ $0.recursiveSubviews() })
}
}
У меня есть представление, похожее на приведенный ниже: < /p> [code]struct TestView: View { var body: some View { NavigationView { VStack(alignment: .leading, spacing: 0) { HStack(spacing: 0) { Text("something here") Spacer() } .frame(height: 50) .background(Color.red) List { ForEach(0.. Проблема с ней заключается в том, что индикатор вертикального прокрутки показал в списке, начинающийся с неправильной позиции, как на скриншоте ниже. Похоже, что дополнительная накладка добавляется сверху. Есть ли способ исправить в Swiftui? Я проверил, что какой -то обходной путь, подобный ниже, с uikit Works, но он далеко не является правильным решением. Есть ли лучший способ сделать это? Я ищу решение, которое работает на iOS 15, если это имеет какое -либо значение. < /P> .onAppear(perform: { DispatchQueue.main.asyncAfter(deadline: .now() + 0.1, execute: { let window = (UIApplication.shared.connectedScenes.first as? UIWindowScene)?.windows.first let views = window?.recursiveSubviews() let scrollViews = views?.filter({ $0 is UIScrollView }) as? [UIScrollView] scrollViews?.forEach({ $0.verticalScrollIndicatorInsets = .init(top: 1, left: 0, bottom: 0, right: 0) }) }) })