Программные ограничения автоматической компоновки краев суперпредставления - PullRequest
0 голосов
/ 07 февраля 2019

Я немного поработал над автоматическим макетом в редакторе раскадровки XCode, но редко когда что-либо делал в коде.В одном конкретном случае мне нужно создать программный эквивалент этих ограничений:

enter image description here

Эти ограничения добавляются в textView, а суперпредставление является другимвид называется commentBox.Я пробовал это до сих пор, но код кажется избыточным и приводит к ошибке автоматического размещения конфликтующих ограничений:

//Trailing
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .trailing, relatedBy: .equal, toItem: cell.commentBox, attribute: .trailing, multiplier: 1, constant: 15))
//Leading
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .leading, relatedBy: .equal, toItem: cell.commentBox, attribute: .leading, multiplier: 1, constant: 15))
//Bottom
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .bottom, relatedBy: .equal, toItem: cell.commentBox, attribute: .bottom, multiplier: 1, constant: 10))
//Top
textView.addConstraint(NSLayoutConstraint(item: textView, attribute: .top, relatedBy: .equal, toItem: cell.commentBox, attribute: .top, multiplier: 1, constant: 10))

Есть идеи, что я делаю неправильно?Спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

Попробуйте это:

commentBox.addSubview(textView)

textView.translatesAutoresizingMaskIntoConstraints = false

textView.topAnchor.constraint(equalTo: commentBox.topAnchor, constant: 10).isActive = true
textView.bottomAnchor.constraint(equalTo: commentBox.bottomAnchor, constant: -10).isActive = true
textView.leadingAnchor.constraint(equalTo: commentBox.leadingAnchor, constant: 15).isActive = true
textView.trailingAnchor.constraint(equalTo: commentBox.trailingAnchor, constant: -15).isActive = true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...