SwiftEntryKit自定义视图不适合内容的高度

时间:2020-04-03 10:10:21

标签: ios swift uiview uiscrollview

我在使用Pod SwiftEntryKit时遇到问题。

我正在尝试展示具有滚动视图的自定义视图,并且在uiView中包含以下内容:

  • imageView
  • stackView(带有标签的uiView,带有textView的uiView,带有按钮的水平stackView)

图片: layout

这是我的SwiftEntryKit设置:

    let popupView = TwoButtonPopupView(frame: .zero)
    var attributes = EKAttributes()
    attributes.position = .center

    let widthConstraint = EKAttributes.PositionConstraints.Edge.ratio(value: 0.8)
    let heightConstraint = EKAttributes.PositionConstraints.Edge.ratio(value: 0.6)

    let contentViewHeight = popupView.contentView.frame.height
    print("beforeDisplay", contentViewHeight)

    attributes.positionConstraints.maxSize.height = EKAttributes.PositionConstraints.Edge.constant(value: contentViewHeight)
    attributes.positionConstraints.maxSize.width = widthConstraint
    attributes.positionConstraints.size.height = heightConstraint
    attributes.positionConstraints.size.width = widthConstraint


    attributes.lifecycleEvents.didAppear = {
        print("afterDisplay", popupView.contentView.frame.height)
    }

    SwiftEntryKit.display(entry: popupView, using: attributes)

因此,所需的输出是一个恰好是屏幕尺寸宽度的80%和最大屏幕尺寸高度的60%的弹出窗口,但是如果内容较短,则它应该适合内容(换句话说:它应该恰好是内容大小,但不超过60屏幕的百分比)

但是我的输出在这里:

current output

我发现显示弹出窗口后可以使用正确的contentView高度。控制台输出:

["0": "beforeDisplay", "1": "775.5"]
["0": "afterDisplay", "1": "396.0"]

但是无法弄清楚在显示弹出窗口之前如何获得该值。你能帮我看看吗?

0 个答案:

没有答案