Я создал UIHostingController
для размещения представления SwiftUI в моем приложении. Корневое представление содержит VStack
, а внутри него - некоторые HStack
s и Picker
s. Средство выбора толкает экран шире экрана на 8 пунктов. Это выглядит плохо - текст немного за кадром. Обычно я исправляю это с помощью ограничений автоматического размещения, которые прикрепляют левый и правый края представления к суперпредставлению с приоритетом 1000 (обязательно). Что такое эквивалент в SwiftUI?
Какой-то выкинутый код, который вызывает проблему
struct EditSegmentView: View {
@State var seconds: Int = 10
var body: some View {
VStack {
HStack {
Text("Pause after intro")
Spacer()
Text("10 seconds")
}
Picker(selection: $seconds, label: Text("Seconds")) {
ForEach(0..<60) { n in
Text("\(n) sec").tag(n)
}
}
}
}
}
Это отображается из UIViewController
, например:
let editView = EditSegmentView()
let vc = UIHostingController(rootView: editView)
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true)