【问题标题】:Customize Popover TableView自定义 Popover TableView
【发布时间】:2018-01-16 03:54:54
【问题描述】:

我正在展示一个像这样的模态弹出视图:

let popover = StatueSelectionController(collectionViewLayout: UICollectionViewFlowLayout())
popover.delegate = self

popover.modalPresentationStyle = .popover
popover.popoverPresentationController?.barButtonItem = navigationItem.rightBarButtonItem
popover.popoverPresentationController?.permittedArrowDirections = UIPopoverArrowDirection.up;
popover.preferredContentSize = CGSize(width: 200, height: 300)
present(popover, animated: true, completion: nil)

popover.delegate = selfUIPopoverControllerDelegate 无关,尽管它确实实现了该协议。

问题是弹出框占据了整个视图。 StatueSelectionController,即UICollectionViewController,填满了整个屏幕,对于preferredContentSize 没有变化。

我在这里做错了什么?

【问题讨论】:

  • 你是在 iPhone/iPod touch 还是 iPad 上运行这个?
  • 我只在 iPhone 上以纵向模式运行它
  • 弹出框不是 iPhone 上的弹出框。你得到与.fullScreen 相同的结果。 .popover 的文档中提到了这一点。
  • 好的,我之前将collectionview添加到mainView的子视图中作为childviewcontroller,效果很好,但我想让主视图变暗,就像这种行为通常如何工作一样。有没有办法轻松获得这种行为?

标签: ios swift uicollectionview popover modalpopup


【解决方案1】:

如果您想强制 popOver 在 iPhone 上不覆盖全屏,您必须在代码中添加 UIPopoverPresentationControllerDelegate 方法

func adaptivePresentationStyle(for controller: UIPresentationController, traitCollection: UITraitCollection) -> UIModalPresentationStyle {
    return .none
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多