【问题标题】:How to remove rounded corners in PopoverView?如何去除 PopoverView 中的圆角?
【发布时间】:2014-03-28 10:29:12
【问题描述】:

我构建了一个自定义 Popoverview,但未能删除内容的圆角。

尝试在找到的几乎所有视图中设置.layer.cornerRadius = 0.0,但没有成功。

图片链接:Custom Popover

红色边框是用于初始化 UIPopoverController 的 UIViewController,绿色是自定义 UIPopoverBackgroundView 的背景。

【问题讨论】:

标签: ios xcode popover cornerradius


【解决方案1】:

来自这个帖子的答案:UIView default styling has rounded corners?

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

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

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

【讨论】:

  • 已经尝试过一次没有成功,但会再试一次
  • 好吧,您可以随时创建自己的视图并向其添加所需的功能。
  • 终于让它工作了,用它自己的 .presentPopoverFromRect 方法构建了一个自定义 UIPopoverController 调用 [super presentPopoverFromRect:] 然后设置 self.myViewController.view.superview.layer.cornerRadius = 0.0; clipsToBounds=NO 似乎不需要
  • @Michael 你在哪里添加圆角半径代码?
  • @KyleBegeman 在自定义 UIPopoverController 类方法中 - (void)presentPopoverFromRect:(CGRect)rect inView:(UIView *)view allowedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多