有什么方法可以从 UITableView 索引中呈现 UIPopover 吗?

发布于 2024-09-12 07:23:16 字数 902 浏览 6 评论 0原文

我想从 UITableView 特定索引中呈现一个 UIPopover。 这是我的代码:

if (indexPath.row == 5) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    EnginesPopoverController  *enginesPopoverController = [[EnginesPopoverController alloc] initWithNibName:@"EnginesPopoverController" bundle:nil];

    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:enginesPopoverController];

    self.popoverController = popover;
    popoverController.delegate = self;

    [popover release];
    [enginesPopoverController release];

    CGPoint point = {670, 600};
    CGSize size = {450, 216};

    [popoverController presentPopoverFromRect:CGRectMake(point.x, point.y, size.width, size.height) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];                 
}

如果我尝试从 UIButton 呈现 Popover,效果会很好...

谢谢!

I would like to present an UIPopover from an UITableView specific index.
Here's my code:

if (indexPath.row == 5) {
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
    EnginesPopoverController  *enginesPopoverController = [[EnginesPopoverController alloc] initWithNibName:@"EnginesPopoverController" bundle:nil];

    UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:enginesPopoverController];

    self.popoverController = popover;
    popoverController.delegate = self;

    [popover release];
    [enginesPopoverController release];

    CGPoint point = {670, 600};
    CGSize size = {450, 216};

    [popoverController presentPopoverFromRect:CGRectMake(point.x, point.y, size.width, size.height) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];                 
}

If I try to present the Popover from an UIButton it goes well...

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

贱人配狗天长地久 2024-09-19 07:23:16

这就是我所做的:

CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPath]; 
CGRect popoverRect = CGRectMake(self.view.bounds.size.width - self.popoverController.popoverContentSize.width,
                                CGRectGetMidY(cellRect),
                                1.0, 1.0);

我使用的 x 位置将弹出窗口放置在屏幕的右侧。这可能不是您想要的。要找到实际的触摸点,您可以使用手势识别器。

作为回报,请尝试回答我的相关问题: Popover 的箭头跟踪滚动视图中的对象

This is what I do:

CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPath]; 
CGRect popoverRect = CGRectMake(self.view.bounds.size.width - self.popoverController.popoverContentSize.width,
                                CGRectGetMidY(cellRect),
                                1.0, 1.0);

The x location I use places the popover on the right-hand side of the screen. This may not be what you want. To find the actual touch point, you can use gesture recognizers.

In return, please try to answer my related question: Popover's arrow to track an object in a scrollview

浅黛梨妆こ 2024-09-19 07:23:16

操纵大卫的代码我得到了这个:
(我的弹出窗口称为“storytPop”)-我的弹出窗口来自工具栏,我希望下一个表格视图显示在右侧。

CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPath]; 
[self.storytPop presentPopoverFromRect:cellRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];

Manipulating David's code I arrived at this:
(my pop is called "storytPop")- my popover is from the toolbar and I wanted the next tableview to show to the right.

CGRect cellRect = [self.tableView rectForRowAtIndexPath:indexPath]; 
[self.storytPop presentPopoverFromRect:cellRect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文