UIView默认样式有圆角吗?

时间:2012-07-09 19:12:42

标签: ios uiview interface-builder nib

我使用UIPopoverController来显示UIView。布局有点类似于UISplitViewController所以看起来在“细节视图”上有圆角是非常奇怪的,因为它留下了一个小间隙。我还没有找到任何与其他有这个问题的人相关的东西,但这些圆角似乎是默认的样式。是否可以删除它们?

可能会有所帮助的事情:

  • 我从nib文件加载了我的视图,但我目前没有更改默认的UIView
  • 我尝试在clipsToBound = NO
  • 中设置viewDidLoad
  • 我尝试在layer.cornerRadius = 0
  • 中设置viewDidLoad

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

3 个答案:

答案 0 :(得分:11)

没有支持的方法可以使UIPopoverController内部的视图没有圆角。 UIPopoverController的内部代码将视图添加到具有剪切到边界的圆角的视图。

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

如果您真的想要这样做,那么最好的方法是创建一个模仿UIPopoverController功能的类。

答案 1 :(得分:0)

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

change color navigation controller in a popover

答案 2 :(得分:0)

对于使用UIPopoverPresentationController的任何人,以下内容均可使用。

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

    view.superview?.layer.cornerRadius = 0
}