SwiftEntryKit Пользовательский вид не соответствует высоте содержимого - PullRequest
0 голосов
/ 03 апреля 2020

У меня проблема с пакетом SwiftEntryKit.

Я пытаюсь представить пользовательский вид с прокруткой, и внутри есть uiView с:

  • imageView
  • stackView (uiView с меткой, uiView с textView, горизонтальный 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"]

Но я не могу понять, как я могу получить это значение до появления всплывающих окон. Можете ли вы помочь мне понять это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...