У меня есть мой прямоугольник в моем представлении, что при нажатии он расширяется, чтобы показать пользователю больше деталей.
Теперь в нижней части я должен отобразить другие вещи ... как только пользователь нажимает прямоугольник, необходимый для наложения этих данных.
, как вы можете видеть на моей картинке, когда я нажимаю на прямоугольник, вид расширяется, но текст ("CIAO") все еще виден.
![before press on rectangle](https://i.stack.imgur.com/RBSmY.png)
![After press](https://i.stack.imgur.com/57HEH.png)
struct DetailViewNew: View {
var dm : DataManager
let general: GenAirportModel
var body: some View {
VStack {
ZStack {
GeometryReader { geo in
VStack(alignment:.leading){
self.airport
.padding(.horizontal)
.offset(y: geo.size.height/6.3)
RectanglePersonal(general: self.general)
}
.frame(width: geo.size.width, height: geo.size.height/2.5)
.background(LinearGradient(gradient: Gradient(colors: [Color("BlueW"), Color("DARK")]), startPoint: .topLeading, endPoint: .bottomTrailing).shadow(radius: 2))
.edgesIgnoringSafeArea(.all)
Spacer()
}
Text("CIAO")
}
Spacer()
}
}
Моя идея заключалась в использовании @State после того, как пользователь нажал прямоугольник, установил представление в hidden (), но проблема в том, Я обнаруживаю, нажимает ли пользователь прямоугольник в другой структуре RectanglePersonal (используя состояние isExpanded)
struct RectanglePersonal: View {
let general: GenAirportModel
@State private var isExpanded = false
var body : some View {
GeometryReader { g in
ZStack(alignment:.leading) {
Rectangle()
.foregroundColor(.clear)
.background(LinearGradient(gradient: Gradient(colors: [Color("BlueW"), Color("DARK")]), startPoint: .topLeading, endPoint: .bottomTrailing))
// .blur(radius: 20)
.cornerRadius(20)
// .foregroundColor(Color("BlueW"))
.shadow(color: .white, radius: 10)
.padding(.horizontal,5)
.frame(width: g.size.width,
height: self.isExpanded ? g.size.height*2 : g.size.height/1.3)
.offset(y: self.isExpanded ? g.size.height : g.size.height/2.5)
.animation(.easeInOut(duration: 0.5))
VStack(alignment:.leading) {
Text("METAR:")
.bold()
Text(self.general.metarData.raw_text)
.lineLimit(self.isExpanded ? nil : 2)
.animation(.easeInOut(duration: 0.5))
Text("TAF:")
.bold()
Text(self.general.tafData.raw_text)
.lineLimit(self.isExpanded ? nil : 2)
.animation(.easeInOut(duration: 0.5))
}
.padding(.horizontal)
.offset(y: self.isExpanded ? g.size.height : g.size.height/2.5)
.animation(.easeInOut(duration: 0.5))
}.padding()
.onTapGesture {
self.isExpanded.toggle()
}
}
}
}
как я могу определить из структуры RectanglePersonal значение @isExpanded? и читать это с моей точки зрения DetailViewNew? Для того, чтобы скрыть текст "CIAO"