作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我总是尝试以这种方式在 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/
我总是尝试以这种方式在 tableView 中的单元格中显示弹出框: [myPopover presentPopoverFromRect:cell.frame inView:self.tableVie
我是一名优秀的程序员,十分优秀!