Мне бы хотелось, чтобы кнопка плавно сочеталась с края строки списка, и мне удалось сделать это с помощью модификатора представления .listRowInsets().
Однако при этом удаляются вставки для всего представления. Теперь я хотел бы добавить вставки обратно, но только в средство выбора, и мне хотелось бы, чтобы это соответствовало всем остальным спискам строк внутри формы, независимо от того, какой динамический шрифт установлен у пользователя.
Ниже представлено представление, в котором создано средство выбора с кнопкой. Я прокомментировал, где, по моему мнению, нужно будет разместить отступы.
Код: Выделить всё
struct PickerWithButton: View {
@Binding var selection: String
@Binding var strings: [String]
@Binding var toggle: Bool
var body: some View {
HStack(spacing: 0){
Button(action: { }, label: {
Image(systemName: "plus")
})
.padding([.leading, .trailing], 12)
.frame(maxHeight: .infinity, alignment: .center)
.foregroundStyle(.white)
.background(.blue)
.onTapGesture {
toggle.toggle()
}
Picker("Picker", selection: $selection) {
ForEach(strings, id: \.self){
Text($0)
}
}
.padding(.leading, 20)
.padding([.top, .bottom], /*System Top and Bottom List Row Insets*/ ) /*
Подробнее здесь: [url]https://stackoverflow.com/questions/78687136/how-can-i-get-the-listrowinsets-to-create-seamless-edges-in-keeping-with-the-res[/url]