Стиль выбора меню SwiftUI показывает странную двойную стрелку
В основном я использую стиль выбора меню для отображения набора чисел. Я предпочитаю его меню, потому что у него нет галочки перед выбранным элементом, и поскольку мне нужно изменить текст меню, требуется время для его повторного рендеринга, если новый элемент длиннее предыдущего. При использовании стиля выбора я получаю эти двойные стрелки, которые меня раздражают и до сих пор не нашли для них решения.
struct ContentView: View {
@State private var selection = "Red"
let colors = ["Red", "Green", "Blue", "Black", "Tartan"]
var body: some View {
VStack {
Picker("Select a paint color", selection: $selection) {
ForEach(colors, id: \.self) {
Text($0)
}
}
.pickerStyle(.menu)
Text("Selected color: \(selection)")
}
}
}
Я ожидаю, что это будет выглядеть примерно так. (Эта фотография взята из обычного меню, но, как я уже говорил, на ней больше негативов, поэтому она мне не нужна)
1 ответ
вы можете попробовать, как показано ниже, с помощью меню можно отобразить галочку
struct ContentView: View {
let colors = ["Red", "Green", "Blue", "Black", "Tartan"]
@State var index = 0
@State var selectedColor = "Red"
var body: some View {
VStack {
Menu{
ForEach(Array(colors.enumerated()), id: \.offset){index, color in
Button(action: {
self.index = index
self.selectedColor = color
}, label: {
HStack{
Text(color)
if selectedColor == colors[index]{
Image(systemName: "checkmark")
}
}
})
}
} label: {
Text(colors[index])
.foregroundColor(.blue)
.frame(width: UIScreen.main.bounds.width/2)
}
Text("Selected Color \(colors[index])")
}
}
}