iOS PopOver - 仅限于条形按钮项或圆形矩形?

时间:2012-09-20 22:56:11

标签: objective-c ios xcode uiview popover

我正在构建一个iPad应用程序,它在UIview中嵌入了一个tableview(奇怪,我知道)。在UITableview中,通过PLIST加载数据。我想允许用户“选择”一行,它会显示一个包含文本字段的“popover”(uiview),允许他们编辑该字段。

然而,通过代码我看到只有两种方法来激活该函数:

  • presentPopoverFromBarButtonItem
  • presentPopoverFromRect

这是真的,你只能从圆形矩形或条形按钮项目中激活该功能吗?我有一种感觉,我可以做到,但搜索没有找到任何答案。

2 个答案:

答案 0 :(得分:0)

是的,您只能通过条形按钮项目或视图中的矩形显示弹出窗口。

来自official doc

Presenting and Dismissing the Popover
– presentPopoverFromRect:inView:permittedArrowDirections:animated:
– presentPopoverFromBarButtonItem:permittedArrowDirections:animated:
– dismissPopoverAnimated:

答案 1 :(得分:0)

这是呈现UIPopoverController子类的唯一两种方法。关于为什么“presentPopoverFromRect”不起作用,你的问题并不清楚。

我理解“presentPopoverFromBarButtonItem”有点限制,但“presentPopoverFromRect”可以让你做任何你想做的事情。它允许您相对于视图定位弹出窗口,其中“rect”提供了相对于视图框架偏移弹出窗口的方法。

尝试:

CGRect popoverRectFromCell = CGRectMake(tappedCell.frame.size.width / 2, tappedCell.frame.size.height / 2, 1, 1);

[cellPopover presentPopoverFromRect:popoverRectFromCell 
                             inView:tappedCell 
           permittedArrowDirections:UIPopoverArrowDirectionUp 
                           animated:YES];

当然,您可以调整“popoverRectFromCell”以获得所需的结果。

但是,我不确定这是否真的是UIPopoverController的用例。当用户点击一个单元格时,可能更容易制作自定义视图并将其用于文本输入。