SwiftUI:按常数偏移 Popover 锚点
SwiftUI: Offset Popover Anchor by Constant Amount
注意:这是一个 macOS 问题,而不是 iOS。
我想将 SwiftUI Popover 锚定在这张图片中“20 小时前”按钮的底角右侧 70 点处:
我不想要将弹出窗口锚定按钮宽度的某个百分比(这将使用UnitPoint
).当用户在弹出窗口中选择不同的项目时,按钮的文本会更新,并且随着按钮宽度的变化,基于百分比的锚点移动,导致弹出窗口水平跳动。不好。我也不想将弹出窗口恰好固定在底部的前角,因为那看起来很蠢。
问题是,我无法弄清楚向 SwiftUI 提供什么来为弹出窗口的锚点获得一个恒定的、简单的水平偏移量。我在这里:
.popover(isPresented: $isShowingPopover, attachmentAnchor: .point(.bottomLeading), arrowEdge: .bottom, content: {
...
})
如何指定:“从底部引导点开始,然后向右移动 70 点”? (根据将出现在按钮中的字符串,我知道 70 在所有情况下都是一个好看的锚点。)
您可以使用 .rect
:
这定义了相对于父内容矩形的绝对偏移量,但是您还必须指定 y 偏移量。
.popover(isPresented: $show1,
attachmentAnchor: .rect(.rect(CGRect(x: 70, y: 15, width: 0, height: 0))),
arrowEdge: .bottom)
{
Text("Popover")
.frame(width: 200, height: 100)
}
注意:这是一个 macOS 问题,而不是 iOS。
我想将 SwiftUI Popover 锚定在这张图片中“20 小时前”按钮的底角右侧 70 点处:
我不想要将弹出窗口锚定按钮宽度的某个百分比(这将使用UnitPoint
).当用户在弹出窗口中选择不同的项目时,按钮的文本会更新,并且随着按钮宽度的变化,基于百分比的锚点移动,导致弹出窗口水平跳动。不好。我也不想将弹出窗口恰好固定在底部的前角,因为那看起来很蠢。
问题是,我无法弄清楚向 SwiftUI 提供什么来为弹出窗口的锚点获得一个恒定的、简单的水平偏移量。我在这里:
.popover(isPresented: $isShowingPopover, attachmentAnchor: .point(.bottomLeading), arrowEdge: .bottom, content: {
...
})
如何指定:“从底部引导点开始,然后向右移动 70 点”? (根据将出现在按钮中的字符串,我知道 70 在所有情况下都是一个好看的锚点。)
您可以使用 .rect
:
这定义了相对于父内容矩形的绝对偏移量,但是您还必须指定 y 偏移量。
.popover(isPresented: $show1,
attachmentAnchor: .rect(.rect(CGRect(x: 70, y: 15, width: 0, height: 0))),
arrowEdge: .bottom)
{
Text("Popover")
.frame(width: 200, height: 100)
}