如何删除iPad的Popover箭头及其框架边框

时间:2011-01-21 05:45:59

标签: ipad popover

基本上这是两个问题:

  1. 如何删除iPad的弹出视图箭头?

  2. 有没有办法删除popover的黑色边框?

  3. 如果不可能,你能否在iPad上建议在屏幕顶部显示UIView(popover)而没有箭头和边框(可能是浅透明边框),好吗?非常感谢。

    我不认为ModalView是一个合适的选项,因为它无法调整大小并且无法通过单击外部模态视图来解除。

4 个答案:

答案 0 :(得分:7)

AFIK没有内置方式来指定“无箭头”,或者弹出窗口没有边框。

这是一个黑客,但它基本上有效。在由弹出控制器管理的视图控制器的上下文中,在viewWillAppear:期间,获取弹出窗口并删除第一个图层,这是呈现箭头和边框的内容:

- (void) viewWillAppear: (BOOL) animated
{
    [super viewWillAppear: animated];

    UIView* v = self.view.superview;
    NSLog( @"%@", NSStringFromClass( [v class]) ); // this should print UIView

    v = v.superview;
    NSLog( @"%@", NSStringFromClass( [v class]) ); // this should print UIPopoverView

    [[v.layer.sublayers objectAtIndex:0] removeFromSuperlayer];
}       

我想您可以尝试添加自己的图层,以您想要的方式呈现背景/边框。

答案 1 :(得分:7)

  

如何删除iPad的弹出视图箭头?

调用-presentPopoverFromBarButtonItem:allowedArrowDirections:时,将0作为第二个参数传递,而不是任何常量。这没有记录,但Apple在使用此设置时允许App Store中的应用程序。

答案 2 :(得分:2)

您无法移除弹出框周围的镶边。你最好的选择是重新实现popover的想法,但使用自定义代码。

答案 3 :(得分:1)

  • 您无法删除箭头或边框。如果您根据TomSwift的建议进行某种破解,那么在为appStore提交应用时,您可能会冒崩溃拒绝苹果

  • 您可以按照Kevin的建议实现自己的自定义popover控制器。 你可以在这里找到一个开源项目:https://github.com/werner77/WEPopover。背景和箭头可以从那个中移除或设置为透明。