【问题标题】:Corner radius for Popover view controllerPopover 视图控制器的角半径
【发布时间】:2019-07-18 23:59:50
【问题描述】:

我想改变 Popoverview 的圆角半径。

下面是我的代码。

class PopOverViewController: UIViewController {
   override func viewDidLoad() {
      super.viewDidLoad()
   }

   override func viewWillLayoutSubviews() {
         super.viewDidLayoutSubviews()
         self.view.superview?.layer.cornerRadius = 0.0
         self.view.superview?.layer.masksToBounds = true
    }
}

我正在展示如下视图控制器

if let popoverPresentationController = popOverViewController.popoverPresentationController {
            popoverPresentationController.permittedArrowDirections = .down
            popoverPresentationController.sourceView = tabBar
            popoverPresentationController.sourceRect = rect
            popoverPresentationController.delegate = self
            popoverPresentationController.canOverlapSourceViewRect = false
            popOverViewController.preferredContentSize = CGSize(width: 341, height: 68)
            self.present(popOverViewController, animated: true, completion: {
            })
        }

它总是显示圆角。

感谢任何帮助。

【问题讨论】:

标签: ios swift xcode uiviewcontroller uipopovercontroller


【解决方案1】:

截至目前,还没有支持的方法可以让弹出视图控制器具有非圆角。 UIPopoverController 的工作方式是将您的视图添加到带有圆角的视图中,该圆角剪辑到边界。

有两种方法可以解决这个问题:

  1. 等待弹出框控制器显示,然后遍历其父级并将半径设置为 0 并将剪辑到边界设置为 false。这有点骇人听闻,它可能与过去和未来的所有 iOS 版本都不兼容。我不建议这样做。
  2. 创建您自己的类来模仿与 UIPopoverController 相同的功能。这是解决您的问题的最佳方式。

【讨论】:

    猜你喜欢
    • 2018-08-07
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多