基本上这是两个问题:
如何删除iPad的弹出视图箭头?
有没有办法删除popover的黑色边框?
如果不可能,你能否在iPad上建议在屏幕顶部显示UIView(popover)而没有箭头和边框(可能是浅透明边框),好吗?非常感谢。
我不认为ModalView是一个合适的选项,因为它无法调整大小并且无法通过单击外部模态视图来解除。
答案 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。背景和箭头可以从那个中移除或设置为透明。