iOS如何/何时确定safeAreaLayoutguides和layoutMargins?

时间:2017-10-29 18:42:03

标签: ios swift layout uiview safearealayoutguide

在处理自定义UINavigationController过渡时,我注意到一些有趣的事情:我在fromController中创建了一个UIView的副本,并将其添加到transitionContext来进行动画,但它与safeLayoutGuides / Insets的值不同于来自fromController的原创。它具有相似的边距,但仅与safeAreaInsets:

的数量不同
if let fromController = transitionContext.viewController(forKey: .from) as? WTPTransformingHeaderController
{
    // Make a copy of the from header
    let header_FromCopy = fromController.view_Header.copy() as! WTPTransformingHeaderView

    // fromController.view_Header.safeAreaLayoutInsets = UIEdgeInsets(top: 20.0, left: 0.0, bottom: 0.0, right: 0.0)
    // fromController.view_Header.layoutMargins = UIEdgeInsets(top: 48.0, left: 8.0, bottom: 8.0, right: 8.0)

    // header_FromCopy.safeAreaLayoutInsets = .zero
    // header_FromCopy.layoutMargins = UIEdgeInsets(top: 28.0, left: 8.0, bottom: 8.0, right: 8.0)
}

UIView究竟是如何设置这些属性的?在视图的生命周期中的哪一点?我猜它是由视图层次结构决定的,但我找不到具体细节。

0 个答案:

没有答案