2

我正在使用 aUIPopoverController来显示UIView. 布局有点类似于 aUISplitViewController所以在“细节视图”上看起来有圆角很奇怪,因为它留下了一个小间隙。我根本找不到与其他人遇到此问题的任何信息,但这些圆角似乎是默认样式。是否可以删除它们?

可能有帮助的事情:

  • 我从一个 nib 文件加载我的视图,但我目前没有对默认值进行任何更改UIView
  • 我尝试clipsToBound = NO设置viewDidLoad
  • 我尝试layer.cornerRadius = 0设置viewDidLoad

视图的顶部似乎也有阴影,但很难分辨。有什么办法可以摆脱所有这些默认样式?我只想要一个空白的正方形。

4

3 回答 3

11

没有支持的方法可以使 UIPopoverController 内部的视图没有圆角。UIPopoverController 的内部代码将您的视图添加到带有圆角的视图中,该圆角剪辑到边界。

可能有一种骇人听闻的方式来做到这一点,即等到 UIPopoverController 显示,然后遍历您视图的所有父级并将它们全部设置为 have cornerRadius = 0;and clipsToBounds = NO;,但即使您找到了解决方案,它也可能不兼容所有iOS 版本,如果 Apple 将来更改 UIPopoverController 的一些内部代码,那么您的解决方案可能会中断。

如果你真的想这样做,那么最好的方法是创建你自己的类来模仿 UIPopoverController 功能。

于 2012-07-12T00:30:13.570 回答
0

UIPopoverController 默认使用带圆角的黑色渐变色框。但是,您可以使用自定义类来设置背景视图。在这里尝试以下链接。

在弹出窗口中更改颜色导航控制器

于 2012-07-10T05:11:53.203 回答
0

对于使用UIPopoverPresentationController的任何人,以下内容应该有效。

override open func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    view.superview?.layer.cornerRadius = 0
}
于 2017-06-20T05:00:11.647 回答