我想知道是否有方法删除uipopOverpression控制器的左右边距:
ios - 删除UIPopoverPresentationController的左右边距?-LMLPHP
我尝试:

suggestionsTableViewController.popoverPresentationController?.popoverLayoutMargins = UIEdgeInsets(top: -10, left: -10, bottom: -10, right: -10)

但什么都没变。
我还尝试使用UIPopoverBackgroundView:
suggestionsTableViewController.popoverPresentationController?.popoverBackgroundViewClass = HUBBPopoverBackgroundView.self

这是我的UIPopoverBackgroundView的代码:
  class HUBBPopoverBackgroundView: UIPopoverBackgroundView {

  override func layoutSubviews() {
    super.layoutSubviews()
  }

  public override static func contentViewInsets() -> UIEdgeInsets {
    return UIEdgeInsets(top: -10, left: -10, bottom: -10, right: -10)
  }

  public override static func arrowBase() -> CGFloat {
    return 2.0
  }

  public override static func arrowHeight() -> CGFloat {
    return 2.0
  }

  override var arrowOffset: CGFloat {
    get {
      return self.arrowOffset
    }
    set {
      self.arrowOffset = newValue
    }
  }

  override var arrowDirection: UIPopoverArrowDirection {
    get {
      return self.arrowDirection
    }
    set {
      self.arrowDirection = newValue
    }
  }
}

你能帮助我吗??
谢谢您。

最佳答案

不幸的是,popoverLayoutMargins现在什么都不做;它以前工作过,但现在停止了。您可以通过使用弹出窗口的preferredContentSize指定其宽度,但不能指定其确切位置。
如果您想要这种控制,不要使用popover;而是使用自定义呈现的控制器。使用uiPresentioncontroller子类,您可以完全控制所呈现的视图控制器的位置。

10-08 15:40