Код в NSLayoutConstraint
и код в SnapKit
ограничения установки не одинаковы при отображении.
Вы знаете, что при установке cardViewInstance.mainCardView.topAnchor.constraint(equalTo: view.topAnchor, constant: marginOffset)
его вид останется сверху, а отступ сверху каквы установили в marginOffset
.и в SnapKit вы устанавливаете
make.top.equalTo(view)
make.topMargin.equalTo(marginOffset)
Итак, это неправильно, потому что вы не можете установить top
и topMargin
одновременно, потому что это не похоже на то, что вы установили в NSLayoutConstraint
Поэтому, пожалуйста, исправьте это следующим образом (согласно документу):
make.top.equalTo(view).offset(marginOffset)
Для вас вопрос, как установить multiplier
, вы можете достичь, объявив переменную что-то вроде view.frame.height / 2
и вы можете применить в вас SnapKit
ограничение make.height.equalTo(view.frame.height / 5)
Вот как выглядит весь код
cardViewInstance.mainCardView.snp.makeConstraints { (make) in
make.top.equalTo(view).offset(marginOffset)
make.leading.equalTo(self.view).offset(20)
make.trailing.equalTo(self.view).offset(-20)
make.height.equalTo(view.frame.height / 5)
}
Надеюсь, что помощь: D