Наименее многословный способ ограничить представление своим суперпредставлением - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть UIView с именем containerView, который содержит все элементы пользовательского интерфейса в моем представлении.Причина, по которой я сейчас создаю containerView, заключается в том, что я хотел бы реализовать поддержку клавиатуры для устройств с меньшим размером экрана и не смог бы встроить self.view в UISCrollView .

Когда я устанавливаю ограничения для моего containerView, я делаю это так:

NSLayoutConstraint.activate([
    containerView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
    containerView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor),
    containerView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
    containerView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),

    /* constraints of containerView's subviews */
}

Поскольку я ограничиваю все четыре якоря моего containerView значением view, ямне любопытно узнать, есть ли менее многословный способ (возможно, однострочный?), который бы достиг этого.

1 Ответ

0 голосов
/ 09 ноября 2018

Используя встроенные методы, я считаю, что это был бы самый короткий способ сделать это.

let views = ["contentView": contentView]
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "|-[contentView]-|", views: views))
NSLayoutConstraint.activate(NSLayoutConstraint.constraints(withVisualFormat: "V:|-[contentView]-|", views: views))

Но если вы часто это делаете, то лучше создать расширение, которое вы можете вызвать.

...