gpt4 book ai didi

objective-c - 将 UIPopoverController 呈现在同一位置,仅更改箭头偏移量

转载 作者:IT王子 更新时间:2023-10-29 08:11:46 24 4
gpt4 key购买 nike

我的目标是为 UIPopoverController 保持相同的坐标,只是改变箭头偏移量。所以基本上我有三个按钮,触摸每个按钮都会显示一个弹出窗口。呈现此弹出窗口时,它会改变屏幕上的位置,但我不希望那样。为了更清楚地查看屏幕截图:

enter image description here

enter image description here

enter image description here

最佳答案

对于我的弹出窗口,我希望箭头位于左上而不是顶部中心(默认设置)。

通过设置 UIPopoverController 的 popoverLayoutMargins 属性,我设法获得了以下结果(屏幕截图)。您可以使用它来减少在 UIPopoverController 的内部计算中使用的屏幕区域,以确定在何处显示弹出框。

UIPopovercontroller arrow on the left

代码:

// Get the location and size of the control (button that says "Drinks")
CGRect rect = control.frame;

// Set the width to 1, this will put the anchorpoint on the left side
// of the control
rect.size.width = 1;

// Reduce the available screen for the popover by creating a left margin
// The popover controller will assume that left side of the screen starts
// at rect.origin.x
popoverC.popoverLayoutMargins = UIEdgeInsetsMake(0, rect.origin.x, 0, 0);

// Simply present the popover (force arrow direction up)
[popoverC presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

我认为您可以通过调整上述内容来获得所需的结果。

关于objective-c - 将 UIPopoverController 呈现在同一位置,仅更改箭头偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11338316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com