После нажатия кнопки выбора она переходит к выбранному виду. Список элементов отображается слишком далеко от вершины, но появляется после завершения анимации. Почему это происходит?
Демо: https://gfycat.com/idioticdizzyazurevase
Я уже создал минимальный пример, чтобы исключить заголовки и кнопки панели навигации, разделы формы и другие детали:
import SwiftUI
struct NewProjectView: View {
@State var name = ""
var body: some View {
NavigationView {
Form {
Picker("Client", selection: $name) {
Text("Client 1")
Text("Client 2")
}
}
}
}
}
struct NewProjectView_Previews: PreviewProvider {
static var previews: some View {
NewProjectView()
}
}
Это происходит в режиме предварительного просмотра, на симуляторе и на устройстве (Xcode 11.2, iOS 13.2 в симуляторе, 13.3 beta 1 на устройстве).
.listRowInsets()
.Ответы:
Очевидно, что при работе со стилем навигации в стеке можно обойти заведомо ошибочное поведение:
Это решение моей проблемы, но я не буду отмечать это как принятый ответ (пока).
источник
На мой взгляд, это как-то связано с панелью навигации. По умолчанию (без упоминания о
.navigationBarTitle
расширении) режим отображения навигации установлен на.automatic
, его следует изменить на.inline
. Я наткнулся на другой пост, похожий на этот, и использую их решение в сочетании с вашим, с помощью.navigationBarTitle("", displayMode: .inline)
должен помочь.источник
До тех пор, пока эта ошибка не будет устранена, другим способом обойти эту проблему, сохраняя DoubleColumnNavigationViewStyle для iPad, будет условно установить этот стиль:
источник
Спасибо всем за эту ветку! Действительно помог мне понять вещи больше и овладеть одной из моих проблем. Чтобы поделиться с другими, у меня была эта проблема, но у меня также была эта проблема, когда я устанавливал раздел для отображения в операторе if / else для раздела с переключателем. Когда тумблер был активирован, он сместит заголовок раздела по горизонтали на несколько пикселей.
Вот как я это исправил
У меня все еще есть горизонтальное смещение в окне выбора выбора и я не уверен, как это исправить. Я создал другой поток для получения ввода. Еще раз спасибо! SwiftUI Shift Picker Text Горизонтально
источник