При удалении навигационной панели из навигационной панели, как сделать оставшиеся панели инструментов правильным размероIOS

Программируем под IOS
Ответить
Anonymous
 При удалении навигационной панели из навигационной панели, как сделать оставшиеся панели инструментов правильным размеро

Сообщение Anonymous »

Поскольку .searchable не позволяет настраивать кнопки в строке поиска, мне вручную пришлось воссоздать строку поиска, как показано ниже. Однако при удалении одного из элементов в строке поиска текстовое поле не изменяет размер правильно и эффективно вставляет прокладки на переднем крае. Когда текстовое поле сосредоточено, оно изменяется и заполняет все пространство. Если кнопка «Комплекс» уже была скрыта при представленной панели поиска, она уходит правильно. Как изменить размер Textfield после автоматического удаления кнопки «Композиция»?

Код: Выделить всё

struct ContentView: View {
@State var isSearchBarVisible = false
@State var isComposingMessage = false
@State var searchText = ""

let items: [String] = ["hey", "there", "how", "are", "you"]

var searchItems: [String] {
items.filter { item in
item.lowercased().contains(searchText.lowercased())
}
}

var body: some View {
NavigationStack {
VStack {
List {
if !searchText.isEmpty {
ForEach(searchItems, id: \.self) { item in
Text(item)
}
} else {
ForEach(items, id: \.self) { item in
Text(item)
}
}
}
}
.toolbar {
if isSearchBarVisible {
ToolbarItem(placement: .principal) {
TextField("Search", text: $searchText)
.padding(8)
.background(Color.gray.opacity(0.2))
}
ToolbarItem(placement: .topBarTrailing) {
Button(action: {
isSearchBarVisible = false
},[![enter image description here][1]][1]
label: {
Text("Cancel")
})
}
if !isComposingMessage {
ToolbarItem(placement: .topBarTrailing) {
Button(action: {
isComposingMessage.toggle()
},
label: {
Text("Compose")
})
}
}
}
else {
ToolbarItem(placement: .topBarLeading) {
Button(action: {
isSearchBarVisible = true
},
label: {
Text("Search")
})
}
ToolbarItem(placement: .principal) {
Text("Title")
}
ToolbarItem(placement: .topBarTrailing) {
Button(action: {
isComposingMessage.toggle()
},
label: {
Text("Compose")
})
}
}
}
}
}
}





Подробнее здесь: https://stackoverflow.com/questions/797 ... -remaining
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»