【问题标题】:iOS PopOver - only from bar button item or round rect?iOS PopOver - 仅来自条形按钮项目或圆形矩形?
【发布时间】:2012-09-13 09:04:47
【问题描述】:

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

但是,查看代码我发现只有两种方法可以触发该函数:

  • presentPopoverFromBarButtonItem
  • presentPopoverFromRect

这是真的吗,您只能从圆形矩形或条形按钮项目中触发该功能吗?我觉得我可以完成,但是搜索没有找到任何答案。

【问题讨论】:

  • 你不能用这种方法之一触发弹出窗口吗?

标签: objective-c ios xcode uiview popover


【解决方案1】:

是的,您只能从条形按钮项或视图中的矩形呈现弹出框。

来自official doc

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

【讨论】:

    【解决方案2】:

    这些是呈现 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 的用例。当用户点击单元格时,制作自定义视图并将其用于文本输入可能会更容易。

    【讨论】:

    • 我想先看看“内置”功能是否可行,但似乎走自定义路线就足够了。
    • 所以我想我可以使用 selected_cell.accessoryType = UITableViewCellAccessoryDe​​tailDisclosureButton 函数来创建一个内联“按钮”——这实际上不会干扰我的界面(我有要求)。有谁知道如何利用它来触发 popover 命令?
    • 但是你的 popover 和 tableview 不在同一个视图中 - 对吧?您需要做的是使包含将显示您的弹出框的视图的控制器成为您的表格视图的委托,并且当用户点击单元格时,通过此视图的按钮或矩形区域触发弹出框的显示(这是弹出框的父视图)
    猜你喜欢
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-25
    • 1970-01-01
    相关资源
    最近更新 更多