Swift: обновление вставок UIViewController через расширение - PullRequest
0 голосов
/ 30 апреля 2020

Я хотел обновить UIEdgeInsets всех моих контроллеров представления на определенных устройствах, и я хотел посмотреть, есть ли способ сделать это глобально как расширение, вместо того, чтобы создавать метод и вызывать его в viewDidLoad для каждого из них. Есть ли способ добиться этого? Я попытался использовать awakeFromNib, но это не сработало.

extension UIViewController {

    open override func awakeFromNib() {
        self.additionalSafeAreaInsets = UIEdgeInsets(top: 100, left: 100, bottom: 100, right: 100)
    }

}

Я также попытался вызвать self.viewLayoutMarginsDidChange () после изменения вставок ребер, без результатов.

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

1 Ответ

2 голосов
/ 30 апреля 2020
extension UIViewController {

    open override func awakeAfter(using: NSCoder) -> Any? {
        self.additionalSafeAreaInsets = UIEdgeInsets(top: 100, left: 100, bottom: 100, right: 100)
        return super.awakeAfter(using: using)
    }

}
...