Swift.NET 通过扩展更新UIViewController插件

问题描述 投票:0回答:1

我想在某些设备上更新我所有视图控制器的UIEdgeInsets,我想看看是否有办法作为一个扩展在全局范围内完成,而不是为每个控制器创建一个方法并在viewDidLoad中调用它。有什么方法可以实现这个目标吗?我试过使用awakeFromNib,但这不起作用。

extension UIViewController {

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

}

我还试过在改变边缘插入后调用self.viewLayoutMarginsDidChange(),没有结果。

如果有任何建议,我将非常感激。是我重写了错误的方法,还是这根本不可能,或者说没有我想的那么简单。

swift overriding extension-methods viewcontroller
1个回答
2
投票
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)
    }

}
© www.soinside.com 2019 - 2024. All rights reserved.