Ссылаясь на этот вопрос Making a custom UIView subview that fills its superview при попытке добавить ограничения программно.Не удается найти просмотр при добавлении ограничений программно?
Я использую следующий код, чтобы добавить два ограничения в программировании; однако я получаю сообщение об ошибке: «Невозможно разобрать формат ограничения», потому что связанное представление не имеет супервизора.
private func setupDownView(view: UIView) {
let downView = try? DownView(frame: view.bounds, markdownString: "")
downView!.translatesAutoresizingMaskIntoConstraints = false
let viewsDict = ["view": downView!]
downView!.addConstraint(NSLayoutConstraint.constraints(
withVisualFormat: "V:|-0-[view]-0-|",
options: [],
metrics: nil,
views: viewsDict)[0])
downView!.addConstraint(NSLayoutConstraint.constraints(
withVisualFormat: "H:|-0-[view]-0-|",
options: [],
metrics: nil,
views: viewsDict)[0])
view.addSubview(downView!);
}
станет ли view
авто в SuperView, когда он был добавлен в его подвид?
Я попытался добавить представление перед установкой ограничений на addSubview
до addConstraint
, и я получаю сообщение об ошибке «Иерархия представлений не подготовлена к ограничению».
setupDownView
вызываются в следующих два местах,
@IBOutlet weak var cardTags: UIView! {didSet { setupDownView(view: cardTags)}}
@IBOutlet weak var cardContent: UIView! {
didSet {
setupDownView(view: cardContent)
let tap = UILongPressGestureRecognizer(
target: self,
action: #selector(QuizViewController.tapDownHandler)
)
tap.minimumPressDuration = 0
cardContent.addGestureRecognizer(tap)
}
}
Можете ли вы дать ответ ниже, как ссылку для тех, у кого есть аналогичная проблема? –
Я добавил свой комментарий в качестве ответа. – vacawama