UIPresentationController不支持子视图

时间:2019-04-22 03:15:19

标签: ios swift

我最近开始使用UIPresentationController s,但遇到了一个奇怪的问题。我要做的是以模态形式显示视图控制器,显示在“卡片视图”中。

以下是我到目前为止所取得的成就: enter image description here

因此,卡片视图有效,但是由于某种原因,本来应该在其中的子视图却没有显示。

这是我实例化视图的代码:

override func presentationTransitionWillBegin() {
        guard let container = containerView else { return }
        guard let presentedView = presentedView else { return }

        blurView.alpha = 0
        container.addSubview(blurView)
        blurView.autoPinEdgesToSuperviewEdges()

        container.addSubview(cardView)
        cardView.frame = CGRect(x: 0, y: container.bounds.size.height, width: container.bounds.size.width, height: presentedView.bounds.size.height + maxPullAmplitude + cardView.cornerRadius)

        cardView.contentView.addSubview(presentedView)
        presentedView.autoPinEdge(toSuperviewEdge: .top)
        presentedView.autoPinEdge(toSuperviewEdge: .left)
        presentedView.autoPinEdge(toSuperviewEdge: .right)

        container.layoutIfNeeded()

        presentedViewController.transitionCoordinator?.animate(alongsideTransition: { (ctx) in
            self.blurView.alpha = 1.0
            self.cardView.frame.origin.y = container.bounds.size.height - presentedView.bounds.size.height
        }, completion: nil)
    }

我的cardView是一个自定义类,基本上是一个带有阴影和圆角的视图,因此是contentView

我将显示的视图设置为蓝色背景,它应该出现在卡片内(它也有自己的高度)。奇怪的是,当我通过视图调试进行检查时,它甚至不在视图层次结构中。

将其直接添加到containerView可以正常工作,但这并不是我想要的。

任何想法或建议都非常欢迎!

谢谢!

0 个答案:

没有答案