我想知道是否有方法删除uipopOverpression控制器的左右边距:
我尝试:
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子类,您可以完全控制所呈现的视图控制器的位置。