2012-09-20 66 views
0

我建立一个iPad应用程序,它具有嵌入在UIview中的桌面视图(奇怪的,我知道)。在UITableview中有通过PLIST加载的数据。我想让用户“选择”一行,它会显示一个包含文本字段的“弹出窗口”(uiview),允许他们编辑该字段。iOS PopOver - 仅限酒吧按钮项目或圆形矩形?

不过,翻翻代码,我看只有两种方式来触发功能:

  • presentPopoverFromBarButtonItem
  • presentPopoverFromRect

,这是真的,你能只触发该功能从无论是一个圆形的矩形或一个酒吧按钮项目?我有一种感觉,我可以做,但搜索没有找到任何答案。

+0

你不能用这种方法触发popover吗? – tiguero

回答

0

是的,您只能在视图中的酒吧按钮项目或矩形中呈现弹出窗口。

official doc

Presenting and Dismissing the Popover 
– presentPopoverFromRect:inView:permittedArrowDirections:animated: 
– presentPopoverFromBarButtonItem:permittedArrowDirections:animated: 
– dismissPopoverAnimated: 
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的用例。当用户点击一个单元格时,可能更容易制作自定义视图并将其用于文本输入。

+0

我想先看看是否可以使用“内置”功能,但似乎自定义路线会更好。 –

+0

仍然不知道为什么“内置”功能,我就不会为你工作... –

+0

所以我想我可以使用* selected_cell.accessoryType = UITableViewCellAccessoryDe​​tailDisclosureButton *这将创建一个内联“按钮”功能 - 这实际上会不干扰我的界面(我有要求)。任何人都知道如何利用它来发射popover命令? –