При удалении навигационной панели из навигационной панели, как сделать оставшиеся панели инструментов правильным размеро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»