基本上这些是两个问题:
如何删除iPad的弹出视图箭头?
有没有办法删除popover的黑色边框?
如果不可能的话,你能否在iPad上建议一种在屏幕顶部显示UIView(popover)而没有箭头和边框(可能是浅透明边框)的方法,好吗?非常感谢.
而且我认为ModalView不是一个合适的选项,因为它无法调整大小并且无法通过单击外部模态视图来解除.
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];
}
Run Code Online (Sandbox Code Playgroud)
我想你可以尝试添加你自己的图层,以你想要的方式渲染背景/边框.
如何删除iPad的弹出视图箭头?
当调用-presentPopoverFromBarButtonItem:allowedArrowDirections:时,传递0作为第二个参数,而不是任何常量.这没有记录,但Apple在使用此设置时允许App Store中的应用程序.