swiftui - SwiftUI - 将视图悬停在内容视图之外
问题描述
如何将视图悬停在其内容视图之外?例如内容视图高度 = 400,悬停视图高度 = 1000 悬停视图将需要与内容视图重叠
struct ContentView: View {
@State var isHovering = false
var body: some View {
Button(action: {
print("tap")
}) {
Text("Hover Me")
}.onHover(perform: { hovering in
isHovering.toggle()
}).overlay(VStack {
if self.isHovering {
Rectangle()
.background(Color.red)
.frame(width: 400, height: 1000)
} else {
EmptyView()
}
}).frame(width: 400, height: 400)
}
}
In this case, hover view will match content view height.
解决方案
当 isHovering 为真时,Text 对象的高度和宽度将等于 Rectangle 对象。
Button(action: {
print("tap")
}) {
Text("Hover Me")
.frame(width: self.isHovering ? 400 : .none, height: self.isHovering ? 1000 : .none)
}.onHover(perform: { hovering in
isHovering.toggle()
}).overlay(VStack {
if self.isHovering {
Rectangle()
.foregroundColor(.red)
.frame(width: 400, height: 1000)
} else {
EmptyView()
}
}).frame(width: 400, height: 400)
推荐阅读
- c++ - 如何合并两个条件相同的函数?
- r - 将希腊字符和星号 (*) 添加到轴标题
- c# - 通过排除 XML 中存在的命名空间相关属性来读取 XML 元素值
- javascript - 嵌套的、依赖的回调函数
- javascript - 当dropdownlistfor改变时,Jquery隐藏/显示div,MVC
- javascript - Highstock 平滑平移
- go - 将 strfmon 与 cgo 一起使用
- html - 如何获取Angular 4中多个复选框的动态生成标签的值?
- android - 改造 2 - 预期为 BEGIN_ARRAY,但为 BEGIN_OBJECT
- ms-access - 访问宏空文件输出