gpt4 book ai didi

objective-c - 如何使用 UIPopoverArrowDirectionRight 或 UIPopoverArrowDirectionLeft 正确显示来自 UITableViewCell 的弹出窗口

转载 作者:太空狗 更新时间:2023-10-30 03:08:53 25 4
gpt4 key购买 nike

我总是尝试以这种方式在 tableView 中的单元格中显示弹出框:

[myPopover presentPopoverFromRect:cell.frame inView:self.tableView permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

但我不能使用 UIPopoverArrowDirectionRight 或 Left,因为,取决于位置ipad 的(纵向或横向),弹出窗口出现在其他地方。

我是否以正确的方式呈现弹出窗口?

PS:table view在splitView的detailView中。

最佳答案

您正在通过 rectForRowAtIndexPath 方法从单元格获取框架。这是对的。然而,tableview 很可能是较大 iPad View 的 subview ,因此当 popover 获取坐标时,它认为它们在较大的 View 中。这就是弹出窗口出现在错误位置的原因。

例如,该行的 CGRect 是 (0,40,320,44)。它不是以 tableview 上的那个框架为目标的弹出窗口,而是以你的主视图上的那个框架为目标。

我通过将框架从表格的相对坐标转换为大 View 中的坐标来解决这个问题。

代码:

CGRect aFrame = [self.myDetailViewController.tableView rectForRowAtIndexPath:[NSIndexPath indexPathForRow:theRow inSection:1]];
[popoverController presentPopoverFromRect:[self.myDetailViewController.tableView convertRect:aFrame toView:self.view] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionRight animated:YES];

希望能帮助其他搜索此问题的人。

关于objective-c - 如何使用 UIPopoverArrowDirectionRight 或 UIPopoverArrowDirectionLeft 正确显示来自 UITableViewCell 的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3015400/

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