我最近开始使用UIPresentationController
s,但遇到了一个奇怪的问题。我要做的是以模态形式显示视图控制器,显示在“卡片视图”中。
因此,卡片视图有效,但是由于某种原因,本来应该在其中的子视图却没有显示。
这是我实例化视图的代码:
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可以正常工作,但这并不是我想要的。
任何想法或建议都非常欢迎!
谢谢!