Я хочу использовать удивительный MultiSegmentPicker, написанный Yonat Sharon
в моем SwiftUI View.
https://github.com/yonat/MultiSelectSegmentedControl
Однако я не совсем понимаю взаимодействие между UIViewRepresentable View и моим SwiftUI View. Как заставить контроллер представления хоста уменьшить его высоту до размера сегментированного элемента управления?
Вот представление отладчика демонстрационной страницы - обратите внимание на синюю область вокруг верхней панели:
Демонстрационный код не дает глубокого понимания проблемы, это просто вызов представления UIViewRepresentable. Я упростил это до одного примера:
struct MultiSegmentPickerX: View {
@State private var selectedSegmentIndexes: IndexSet = []
var body: some View {
VStack(alignment: .center) {
Spacer()
MultiSegmentPicker(
selectedSegmentIndexes: $selectedSegmentIndexes,
items: ["First", "Second", "Third", "Done"]
)
}
}
}
Обратите внимание, что у меня есть VStack с Spacer () перед элементом управления.
Желаемое поведение для этого примера - строка с "First", "Second", et c. будет плотно прилегать к нижней части экрана. Вместо этого хост-контроллер удерживает все это пространство ...
Нужно ли мне использовать считыватель геометрии, чтобы решить эту проблему и уменьшить высоту. Или мне нужно что-то настроить в UIViewRepresentable View?
Любое понимание мостового соединения UIKit и SwiftUI всегда приветствуется ... Это легко кто-нибудь исправляет?
Это не решило мою проблему : UIViewRepresentable содержимое не обновляется
Как сделать так, чтобы SwiftUI UIViewRepresentable представление обнимало его содержимое?
Как мне изменить размер UITextView, чтобы его содержание?