调用layoutIfNeeded后,Snapkit 3.0无法获得正确的帧

时间:2016-09-18 13:52:55

标签: swift3 snapkit

我更新了 Xcode 8 SnapKit 3.0 来测试自动布局。在更新为 SnapKit 3.0 之前,我可以在调用layoutIfNeeded后获得正确的帧。但我现在在 SnapKit 3.0 下获得frame.origin.x.y两个负值。

示例

        let signUpView = UIView()
        view.addSubview(signUpView)
        signUpView.snp.makeConstraints { (make) -> Void in
            make.leading.equalTo(50)
            make.trailing.equalTo(-50)
            make.top.equalTo(topView.snp.bottom)
            make.height.equalTo(50)
        }
        // here frame is: {0,0,0,0}
        signUpView.layoutIfNeeded()

        // here frame is:
            (-137.5, -25.0, 275.0, 50.0)
            ▿ origin : (-137.5, -25.0)
              - x : -137.5
              - y : -25.0
            ▿ size : (275.0, 50.0)
              - width : 275.0
              - height : 50.0

1 个答案:

答案 0 :(得分:0)

您需要在layoutIfNeeded而不是view上调用signUpView,因为它是需要进行布局传递的容器。