iOS | SWIFTUI | Кнопки не работают в HStack | Как я могу это исправить, есть ли обходной путь?
Я пробовал и искал довольно много stackOverflow и других местах, хотя есть некоторые похожие вопросы, они пытались изменить стиль кнопки на Обычный по умолчанию, я пробовал эти методы, они, похоже, не работают.
Для контекста, это представление внутри представления .sheet, если это может быть проблемой здесь.
Мне нужна помощь с этим. Спасибо.
Изменить: я попытался создать интервал между тремя кнопками, кнопки «Высокий» и «Низкий» работают, но «Средний» не работает.
Ответ: Добавьте zIndex (1) в HStack.
import SwiftUI
struct AddTasks: View {
@State var data = 0
@State var taskName = ""
@State private var prioritySelectedHigh : Bool = false
@State private var prioritySelectedMed : Bool = false
@State private var prioritySelectedLow : Bool = false
@State private var priority : String = ""
var items = [1,2,3,4,5,6,7,8,9,10]
var body: some View {
NavigationView {
VStack(alignment:.center, spacing: 30){
ZStack {
RoundedRectangle(cornerRadius: 9)
.foregroundColor(Color("TabBar "))
.opacity(0.7)
.frame(width: 310, height: 60, alignment: .center)
TextField(" Task Name ", text: $taskName)
.frame(width: 270, height: 60, alignment: .center)
}
// These Buttons dont work
HStack(alignment: .center, spacing: 52){
ZStack {
RoundedRectangle(cornerRadius: 9)
.foregroundColor(.pink)
.opacity(0.2)
.frame(width: 70, height: 40, alignment: .center)
Button(action: {
print("Hi")
}, label: {
Text("High")
.font(.system(size: 18))
.foregroundColor(.red)
})
}
ZStack {
RoundedRectangle(cornerRadius: 9)
.foregroundColor(.orange)
.opacity(0.2)
.frame(width: 70, height: 40, alignment: .center)
Button(action: {}, label: {
Text("Med")
.font(.system(size: 18))
.foregroundColor(.orange)
})
}
ZStack {
RoundedRectangle(cornerRadius: 9)
.foregroundColor(.green)
.opacity(0.2)
.frame(width: 70, height: 40, alignment: .center)
Button(action:{}, label: {
Text("Low")
.font(.system(size: 18))
.foregroundColor(.green)
})
}
}
ZStack {
RoundedRectangle(cornerRadius: 9)
.foregroundColor(Color("TabBar "))
.opacity(0.7)
.frame(width: 310, height: 60, alignment: .center)
Picker(selection: $data, label: Text("Data"), content: {
ForEach(items, id:\.self) { item in
Text("\(item)")
.rotationEffect(Angle(degrees: 90))
}
})
.labelsHidden()
.rotationEffect(Angle(degrees: -90))
.frame(maxHeight: 60)
.clipped()
.foregroundColor(Color("AccentColor"))
.font(.system(size: 20))
}
}.navigationTitle("New Task")
}.environment(\.colorScheme, .dark)
}
}
struct AddTasks_Previews: PreviewProvider {
static var previews: some View {
AddTasks()
// .environment(\.colorScheme, .dark)
}
}
1 ответ
Решение
Если вы добавите
.zIndex(1)
модификатор вашего
HStack
, он должен работать.