У меня есть NavigationVeiw
, у которого есть ToolbarItem
на задней стороне панели навигации.
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {}, label: {
Text("Button")
})
}
}
navigationBarItems(leading:trailing:)
устарела. Поэтому я использую toolbar(content:)
с размещением navigationBarTrailing
. - Яблоко
Я использовал contextMenu на кнопке.
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {}, label: {
Text("Button")
})
.contextMenu(menuItems: {
Text("Menu Item 1")
Text("Menu Item 2")
Text("Menu Item 3")
})
}
}
Это не чувствительно. Вы должны сильно надавить, чтобы представить это. Мне нужно представить его одним касанием, например кнопкой «Добавить» в iOS Photo App. Он представлен одним касанием.
Как показать меню одним касанием (не нажатием)?
.contextMenu
— это 3D Touch (нажмите и удерживайте), просто используйте обычный Menu
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Menu(content: {
Text("Menu Item 1")
Text("Menu Item 2")
Text("Menu Item 3")
}, label: {Text("button")})
}
}
Вы должны растянуть область касания одним из этих способов .frame( maxWidth: .infinity, maxHeight: .infinity)
или .contentShape(Rectangle())
положить прямо на Image
Я пробовал, но не работает :( Я даже пытался использовать .padding()
, но проблема в том, что он явно смещается влево, и это выглядит не очень хорошо.
Задайте вопрос с минимально воспроизводимым примером
Хорошо, я начал новый вопрос здесь stackoverflow.com/questions/68613132/…
Но с надписью
Image(systemName: "plus")
кнопку очень тяжело нажимать! Как решить эту проблему?