如何解决SwiftUI 显示相对于矩形的弹出框
我有一个矩形代表用户在文档中选择的内容。我想使用 SwiftUI 显示相对于矩形定位的弹出框。在 UIKit 中,这将使用 UIPopoverPresentationController.sourceRect
完成。
我尝试了以下方法:
struct ContentView: View {
@State var selectionBounds = CGRect(x: 100,y: 100,width: 100,height: 100)
@State var showPopover = false
var body: some View {
ZStack {
Path { path in
path.addRect(selectionBounds)
}
.stroke(linewidth: 1.0)
.popover(isPresented: $showPopover) {
Text("Popover")
}
Button(action: { showPopover = true },label: {
Text("Show Popover")
})
}
}
}
矩形被绘制在正确的位置,但弹出框没有显示。
所以我尝试使用 Rectangle
而不是 Path
:
Rectangle()
.frame(width: 100,height: 100,alignment: .leading)
.position(x: 100,y: 100)
.popover(isPresented: $showPopover) {
Text("Popover")
}
这仅在省略 position
时显示弹出窗口。改用 offset
将相对于 Rectangle
的非偏移位置锚定弹出框。
如何相对于 CGRect 锚定弹出框?
解决方法
可能您想要带有 const handleRemoveHero = (hero) => {
db.collection("swapi")
.where("user","==",user?.displayName)
.where("liked",hero)
.get()
.then((data) => {
const id = data.docs[0].id;
db.collection("swapi").doc(id).delete();
});
};
的修饰符,它允许在支架视图坐标空间中指定 rect,例如
attachmentAnchor
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。