【问题标题】:Swift popover in scrollview滚动视图中的 Swift 弹出框
【发布时间】:2016-02-04 10:35:47
【问题描述】:

我有一个带有一些子视图的滚动视图。在这个子视图中,我还有其他子视图。

我想展示一个固定到这个“嵌套”子视图之一的弹出框。

我正确显示了弹出框,并且它被锚定到更正的子视图,但是每当我滚动滚动视图时,弹出框不会随滚动视图一起移动。 每次水平滚动滚动视图时,我都希望弹出框移动并调整其“x”原点。

这是我用来呈现弹出框的代码。

func showAlarmViewController(notification: NSNotification){

    troubleViewController = TroubleshootViewController()
    troubleViewController!.modalPresentationStyle = .Popover
    troubleViewController!.preferredContentSize = CGSizeMake(300.0, 150.0)

    popoverMenuViewController = troubleViewController!.popoverPresentationController
    popoverMenuViewController!.permittedArrowDirections = .Down
    popoverMenuViewController!.delegate = self
    popoverMenuViewController!.passthroughViews = [self.detailScrollView]
    popoverMenuViewController!.sourceView = (notification.object as! UIView).superview
    popoverMenuViewController!.sourceRect = CGRect(x: -100, y: 100, width: 300, height: 150)

    presentViewController(
        troubleViewController!,
        animated: true,
        completion: nil)

}

有什么帮助吗? 谢谢!

【问题讨论】:

    标签: ios swift uiscrollview scrollview popover


    【解决方案1】:

    您必须将 popoverMenuViewController 添加到滚动视图的嵌套子视图之一或滚动视图中

    scrollview.addsubview(popoverMenuViewController)  
    

    如果 popoverMenuViewController 控制器是 UIViewController,则在滚动视图中添加容器视图并将该容器视图链接到 popoverMenuViewController。稍后您可以将容器视图添加为滚动视图的子视图。

    这里是如何实现容器视图的链接。 How to use a 'Container View' in iOS?
    还有
    http://spin.atomicobject.com/2015/07/21/ios-container-views/

    或者在scrollview的嵌套子视图之一中添加popoverMenuViewController

    subviewofscrollview.addsubview(popoverMenuViewController)
    

    根据您添加此 popoverMenuViewController 的子视图内容大小设置您的 popoverMenuViewController 锚。

    【讨论】:

    • popoverMenuViewController 是一个 UIPopoverPresentationController,我不能将它添加为子视图。
    • 我编辑了代码并提供了一些链接,您可以如何使用容器视图。
    • 我明白了,但是我不能使用原生的“presentViewController”功能吗?因为我记得我在 obj-c 中做了这些东西,但我不记得是怎么做的……可能我在 scrollViewDidScroll 方法中做了一些事情……我想使用本机弹出框,因为它会自动在正确的位置显示弹出框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    相关资源
    最近更新 更多